我试图升级一个旧的rails 2.x/ruby 1.8.7应用程序,但是
遇到问题我有字符串\200\001\002\004\b\020并且在我的代码中
我有个东西看起来像:

"\200\001\002\004\b\020"[0]

在1.8.7中,返回fixnum128。然而在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/

10-13 02:18