Как мне кодировать файлы в UTF-8 для Rails 3?

Я работал над импортом outlook (связан с экспортом в формат outlook), но у меня проблемы с кодировкой. Формат внешнего вида CSV, который я получаю при экспорте своих контактов в LinkedIn, отсутствует в UTF-8. Письма как ñ вызвать исключение в mongoid_search жемчужина при звонке str.to_s.mb_chars.normalize, Я думаю, что кодирование является проблемой, потому что, когда я звоню mb_chars ( см. первый пример кода). Я не уверен, что это ошибка в драгоценном камне, но мне все же посоветовали очистить данные.

Из File Picker я попытался использовать их новый, поддерживаемый сообществом гем для загрузки данных CSV. Я пробовал три кодирования детекторов и транскодеров:

  1. Рубиновый порт Python-библиотеки chardet
    • Не работает, как ожидалось
    • Порт по-прежнему содержал код Python, не позволяющий запустить его в моем приложении
  2. rchardet19 драгоценный камень
    • обнаруженный iso-8859 с .8/1 доверие.
    • Пытался перекодировать с Iconv, но на "недопустимых символах" ñ
  3. Charlock_Holmes драгоценный камень
    • обнаруженный windows-1252 с 33/100 уверенность
    • Я предполагаю, что это фактическая кодировка, и rchardet получил iso-8859 потому что это основано на этом.
    • Этот драгоценный камень использует ICU и имеет поддерживаемую ветку "bundle-icu", которая поддерживает Heroku. Когда я пытаюсь транскодировать с помощью charlock Я получаю ошибку U_FILE_ACCESS_ERROR код ошибки ICU, означающий "не удалось открыть файл"

Кто-нибудь знает, что здесь делать?

1 ответ

Решение

Ruby 1.9 имеет встроенную кодировку, вы пробовали:

s.force_encoding 'utf-8'

mb_chars - это оболочка для ruby ​​1.8, так что он вам не нужен.

См дубликат

как конвертировать кодировку символов с помощью ruby ​​1.9

Другие вопросы по тегам