我在Windows 7上通过Cygwin安装了RVM和Ruby。我现在正在尝试在this guide之后安装Omega软件包。命令是
bundle install
哪会出现错误'命令未找到'。解决方案是通过
安装bundlergem install bundler
但是这会在UTF-8错误中产生一个无效的字节序列' this post中描述了解决方案。但我不明白我应该把这个片段放在哪里。
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
请说明将此代码放在哪里。
谢谢!
答案 0 :(得分:6)
我有64位Cygwin,Ruby 2.0.0和gem 2.4.1,并且遇到了同样的问题。 gem install ...
,gem update
,所有内容都以&#34; 错误结束:执行gem ...(ArgumentError)UTF-8中的无效字节序列&#34;。< / p>
我还将所有语言环境设置为&#34; en_US.UTF-8 &#34;。
我已经阅读了某个地方,它应该有助于将LANG
设置为空字符串或&#34; C.BINARY &#34;,但它没有帮助。但是开始试验是很好的暗示。
最后我通过将LANG
和LC_ALL
都设置为空字符串来解决这个问题。所有其他语言环境变量(LC_CTYPE
等)都是自动的设置为&#34; C.UTF-8&#34;由此,LANG
和LC_ALL
仍为空。
现在gem
终于有效了。
如果将问题设置为 UTF-8 ,则LC_CTYPE
似乎会导致该问题。因此将其设置为 C.BINARY 应该有所帮助。其他语言环境变量可以设置为 UTF-8 ,而不会影响它。
export LC_CTYPE=C.BINARY
答案 1 :(得分:3)
只需将角色设置为Cygwin的UTF-8以外的其他东西
点击左上方图标 - &gt;选项 - &gt;文字 - &gt;将“字符集”设置为某些内容(例如GBK)
答案 2 :(得分:0)