以下代码:
def convertToUTF8 str
str = Iconv.conv('ASCII//IGNORE', 'UTF8', str).gsub("\x00", "") # line 585
str.chomp!
str
end
引发异常:
myfile.rb:585: in `conv': invalid encoding ("ASCII", "UTF8") (Iconv::InvalidEncoding)
此错误发生在我的macbook pro上。但是同样的代码可以运行我的同行的macbook pro。所以我认为它应该是一个环境问题。
我尝试使用以下代码:
# The following two lines are in bar.rb
require 'iconv'
puts Iconv.list
然后执行bar.rb:
$ ruby bar.rb | grep UTF # ruby version is 1.9.1-p376
UTF-8
UTF-8-MAC
UTF8-MAC
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UNICODE-1-1-UTF-7
UTF-7
CSUNICODE11UTF7
但是如果我切换到ruby 2.0,那么列表包含“UTF8”。
所以问题转向如何为Ruby 1.9.1安装“UTF8”?