需要rest-open-uri时,无效的多字节序列

时间:2014-04-26 18:17:03

标签: ruby

我卸载了Ruby 1.9.3并安装了Ruby 2.0,然后安装了rest-open-uri gem,因为我写的一个脚本使用了gem,但是当我尝试运行它时会出现这个错误

  

E:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:在`require':E:/Ruby200-x64/lib/ruby/gems/2.0。 0 / gems / rest-open-uri-1.0.0 / lib / rest-open-uri.rb:413:无效的多字节转义:/ [\ r \ n \ t!# - [] - 〜\ x80- \ xff ] + |(\ [\ x00- \ x7f])/(SyntaxError)

为什么会这样?我不完全确定是否因为我使用的是更新版本的Ruby。宝石于2006年发布,因此可能已过时且不再受支持。

我使用RestClient的其他脚本没有这个问题,所以如果最好的解决办法就是删除过时的库并转移到我可能会做的更新的库。

1 个答案:

答案 0 :(得分:1)

ruby​​ 1.9和ruby 2.0之间的区别之一是默认编码现在为utf-8。要解决此问题,您应该编辑文件E:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/rest-open-uri-1.0.0/lib/rest-open-uri.rb,然后添加第一行:

# encoding: US-ASCII

有关详细信息,请参阅here