ruby,rails gem install错误 - 错误:执行gem时...(Encoding :: UndefinedConversionError)

时间:2014-12-05 21:52:30

标签: ruby ruby-on-rails-3 ruby-on-rails-4

我尝试使用ruby的最后一个版本,但是当运行gem install rails时,总是出错

ERROR:  While executing gem ... (Encoding::UndefinedConversionError)
    U+041D to IBM437 in conversion from UTF-16LE to UTF-8 to IBM437

我使用的是Windows 8。

但是宝石列表---本地工作..仅在安装时,我的语言环境设置为英语。

它是什么类型的问题?

2 个答案:

答案 0 :(得分:10)

使用此链接: https://bugs.ruby-lang.org/issues/10300

他们说你需要有机会参与Registry.rb文件:

文件夹:Ruby2.1.0 \ lib \ ruby​​ \ 2.1.0 \ win32 文件:registry.rb 行:70

- LOCALE = Encoding.find(Encoding.locale_charmap)
+ LOCALE = Encoding::UTF_8
+ #LOCALE = Encoding.find(Encoding.locale_charmap)

答案 1 :(得分:1)

我们需要更多信息来解决您的问题。你在运行什么命令?

异常的含义是gem中的某些字符在ibm437中无效,ibm437是Windows机器上常见的“扩展ascii”编码。

您可以通过将内部编码设置为UTF-8来解决此问题。 Encoding.default_internal = Encoding::UTF_8

你是否介意添加一个运行ruby文件的输出,该文件只包含以下内容:

p [Encoding.default_external, Encoding.default_internal, __ENCODING__, Encoding.find('filesystem'), Encoding.find('locale')]

感谢。如果你只在irb中这样做,那就好了。