繁体   English   中英

错误:将Ruby 1.8.7升级到Ruby 1.9.2后,UTF-8中的字节序列无效

[英]error: invalid byte sequence in UTF-8 after upgrading ruby 1.8.7 to ruby 1.9.2

我的应用程序在ruby 1.8.7和rails 3.0.11中运行,我用1.9.2 ruby​​和rails 3.2.2对其进行了升级。 它有这样的utf转换器

@utf8_converter = Iconv.new('UTF-8//IGNORE', 'UTF-8')
......  
......
def utf8(untrusted_string)
valid_string = @utf8_converter.iconv(untrusted_string + ' ')[0..-2]
return valid_string

据我所知Iconv不支持ruby 1.9.2。 如何使其运行?

谢谢

我相信这应该可以使您走上正确的轨道:

def utf8(untrusted_string) 
  valid_string = (untrusted_string + ' ').encode('utf-8')
  return valid_string
end

由于不推荐使用Iconv,因此不再需要@utf8_converter变量,因此您可以只使用utf8方法。

Ruby 1.9.2确实支持Iconv ,如果您通过rvm使用ruby,则应通过以下方式安装它:

$ rvm pkg install iconv
$ rvm reinstall 1.9.2 --with-iconv-dir=$rvm_path/usr

在这里阅读更多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM