Ruby 1.9.3 需要 UTF-8 解释中的字节序列无效



我在Windows 7上通过Cygwin安装了RVM和Ruby。我现在正在尝试按照本指南安装欧米茄捆绑包。该命令是

bundle install

这给出了错误"找不到命令"。解决方案是通过以下方式安装捆绑器

gem install bundler

但这给出了"UTF-8 错误中的无效字节序列"。这篇文章描述了这个问题的解决方案。但是我不明白我应该把这个片段放在哪里。

require 'iconv' unless String.method_defined?(:encode)
if String.method_defined?(:encode)
file_contents.encode!('UTF-8', 'UTF-8', :invalid => :replace)
else
ic = Iconv.new('UTF-8', 'UTF-8//IGNORE')
file_contents = ic.iconv(file_contents)
end

请解释将此代码放入何处。

谢谢!

我有 64 位 Cygwin、Ruby 2.0.0 和 gem 2.4.1,并且遇到了同样的问题。gem install ...gem update,一切都以">错误:在执行 gem 时......(参数错误)UTF-8 中的字节序列无效"。

我还将所有区域设置设置为">en_US。UTF-8"。

我在某处读到LANG设置为空字符串或">C.BINARY"应该有所帮助,但它没有帮助。但这是一个很好的提示,开始实验。

最后,我通过将LANGLC_ALL都设置为空字符串来解决这个问题。所有其他语言环境变量(LC_CTYPE等)都自动设置为"C.UTF-8",LANGLC_ALL保持为空。

现在gem终于开始工作了。

>更新如果将它设置为UTF-8,似乎具体LC_CTYPE会导致该问题。因此,将其设置为C.BINARY应该会有所帮助。其他区域设置环境变量可以设置为UTF-8,而不会影响它。

export LC_CTYPE=C.BINARY

只需将字符设置为Cygwin的UTF-8以外的其他字符即可

单击左上方图标 -->选项 -->文本 -->将"字符集"设置为某些内容(例如 GBK)

你可以试试这个,它对我有用:

> $ LANG=C.BINARY gem install bundler

您可以在此处找到更多信息

相关内容

最新更新