考虑以下代码(一个从实际问题提炼出来的小测试用例):
abc="ABC"
b="B"
print abc.index(b)
print "n"
abc2=abc.unpack('C*').pack('C*')
b2=b.unpack('C*').pack('C*')
print abc2.index(b2)
print "n"
在IdeOne中它输出
1
1
使用IronRuby(32位或64位)从命令行运行,它输出
1
nil
尽管如此,如果我也打印abc==abc2
,它会得到true
。
这显然是IronRuby中的一个bug,但它是一个已经死亡的项目,所以在不久的将来修复它的希望不大。
有没有人知道一个变通办法,这将允许我包装ASCII回字符串,实际上表现为一个人的期望?
我曾经遇到过一个类似的问题,不得不添加一个+''
来强制字符串强制转换。
b2=b.unpack('C*').pack('C*')
应替换为
b2=b.unpack('C*').pack('C*') + ''