我在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"应该有所帮助,但它没有帮助。但这是一个很好的提示,开始实验。
最后,我通过将LANG
和LC_ALL
都设置为空字符串来解决这个问题。所有其他语言环境变量(LC_CTYPE
等)都自动设置为"C.UTF-8",LANG
和LC_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
您可以在此处找到更多信息