Ошибки преобразования из UTF-8 в латиницу с помощью Iconv - PullRequest
1 голос
/ 21 октября 2011

Всего Ruby noob, просто пытаюсь взломать скрипт, чтобы он заработал.

irb(main):011:0> Iconv.iconv("LATIN1//IGNORE", "UTF-8", "Résumé")
Iconv::InvalidCharacter: "\351"
    from (irb):11:in `iconv'
    from (irb):11
    from :0
irb(main):012:0> Iconv.iconv("LATIN1//TRANSLIT//IGNORE", "UTF-8", "Résumé")
Iconv::IllegalSequence: "\351sum\351"
    from (irb):12:in `iconv'
    from (irb):12
    from :0
irb(main):002:0> "Résumé".encoding
NoMethodError: undefined method `encoding' for "R\351sum\351":String
    from (irb):2

1 Ответ

1 голос
/ 21 октября 2011

Поскольку ваша входная строка уже интерпретируется как LATIN1, вы не можете преобразовать ее по этому пути.Вам может потребоваться установить кодировку UTF-8 для запуска.\351 - это символ LATIN1 é.

Вы хотите получить следующий результат:

"Résumé".encoding
# => #<Encoding:UTF-8>

Вы можете проверить переменную окружения LANG или любую другую платформу, используемую для определениякодировка символов по умолчанию.

...