2012-03-14 4 views
0

루비 1.8.7과 레일 3.0.11에서 실행중인 앱을 1.9.2 루비와 레일 3.2로 업그레이드했습니다. .2. 은 루비 1.9.2를 지원하지 않습니다 내 이해의 iconv에게이오류 : 루비 1.8.7을 루비 1.9.2로 업그레이드 한 후 UTF-8로 바이트 시퀀스가 ​​잘못되었습니다.

@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 

같은 UTF 변환기가 있습니다. 어떻게 실행시킬 수 있습니까?

감사

답변

0

루비 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 메소드로도 벗어날 수 있습니다.