ошибка: неверная последовательность байтов в UTF-8 после обновления ruby ​​1.8.7 до ruby ​​1.9.2 - PullRequest
0 голосов
/ 14 марта 2012

Мое приложение работало на 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.как заставить его работать?

Спасибо

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Я полагаю, что это должно привести вас на правильный путь:

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

Переменная @utf8_converter больше не нужна, так как Iconv устарела, так что вы можете уйти с помощью только вашего метода utf8.

0 голосов
/ 14 марта 2012

Ruby 1.9.2 поддерживает Iconv , если вы используете ruby ​​через rvm, вы должны установить его следующим образом,

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

Подробнее здесь

...