2012-03-14 93 views
0

我有我的应用程序运行在红宝石1.8.7和轨道3.0.11,我升级它与1.9.2红宝石和轨道3.2 0.2。 它有一个UTF转换器这样错误:在UTF-8中无效的字节序列在升级后红宝石1.8.7红宝石1.9.2

@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不支持红宝石1.9.2。 如何让它运行?

感谢

回答

0

的Ruby 1.9.2不支持Iconv,如果你是通过RVM使用红宝石,你应该安装它通过以下方式,

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

更多here

1

我相信这是应该让你在正确的轨道上:

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

由于Iconv已被弃用,因此不再需要@utf8_converter变量,因此只需使用utf8方法即可脱身。