ban*_*per 1 ruby encode utf-8 rvm
我在Windows 7上通过Cygwin安装了RVM和Ruby.我现在正在尝试按照本指南安装Omega软件包.命令是
bundle install
Run Code Online (Sandbox Code Playgroud)
这给出了错误'找不到命令'.解决方案是通过安装bundler
gem install bundler
Run Code Online (Sandbox Code Playgroud)
但这会产生"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
Run Code Online (Sandbox Code Playgroud)
请解释这段代码的放置位置.
谢谢!
我有64位Cygwin,Ruby 2.0.0和gem 2.4.1,并遇到了同样的问题.gem install ...,gem update一切都以" 错误:在UTF-8中执行gem ...(ArgumentError)无效字节序列 "结束.
我还将所有语言环境设置为" en_US.UTF-8 ".
我在某处读过它应该有助于设置LANG为空字符串或" C.BINARY ",但它没有帮助.但是开始试验是很好的暗示.
最后,我已经通过设置既解决LANG和LC_ALL为空字符串.所有其他语言环境变量(LC_CTYPE等)由此自动设置为"C.UTF-8",LANG并LC_ALL保持为空.
现在gem终于有效了.
LC_CTYPE如果设置为UTF-8,似乎特别导致该问题.因此将其设置为C.BINARY应该有所帮助.其他语言环境变量可以设置为UTF-8而不会影响它.
export LC_CTYPE=C.BINARY
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |