2012-03-14 64 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方法即可脫身。