我试图升级一个旧的rails 2.x/ruby 1.8.7应用程序,但是
遇到问题我有字符串\200\001\002\004\b\020
并且在我的代码中
我有个东西看起来像:
"\200\001\002\004\b\020"[0]
在1.8.7中,返回fixnum
128
。然而在Ruby1.9.3(及更新版本)中返回字符串
\x80
。我的问题有两部分:第一,这里发生了什么,第二,我怎么能
获取与1.8.7中新版本的
红宝石?
更新#1
正如一些人所建议的,我尝试过
"\200\001\002\004\b\020".bytes[0]
,但这不起作用(它确实在2.3.1
中起作用),因为它错误于: NoMethodError: undefined method `[]' for #<Enumerator: "\x80\u0001\u0002\u0004\b\u0010":bytes>
最佳答案
要获得旧行为,请使用String#getbyte
,如下所示:
“\200\001\002\004\B\020”。获取字节(0)
关于ruby - String#[] Ruby 1.8.7和1.9.3之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38709340/