Как мне кодировать файлы в UTF-8 для Rails 3?
Я работал над импортом outlook (связан с экспортом в формат outlook), но у меня проблемы с кодировкой. Формат внешнего вида CSV, который я получаю при экспорте своих контактов в LinkedIn, отсутствует в UTF-8. Письма как ñ
вызвать исключение в mongoid_search
жемчужина при звонке str.to_s.mb_chars.normalize
, Я думаю, что кодирование является проблемой, потому что, когда я звоню mb_chars
( см. первый пример кода). Я не уверен, что это ошибка в драгоценном камне, но мне все же посоветовали очистить данные.
Из File Picker я попытался использовать их новый, поддерживаемый сообществом гем для загрузки данных CSV. Я пробовал три кодирования детекторов и транскодеров:
- Рубиновый порт Python-библиотеки
chardet
- Не работает, как ожидалось
- Порт по-прежнему содержал код Python, не позволяющий запустить его в моем приложении
rchardet19
драгоценный камень- обнаруженный
iso-8859
с.8/1
доверие. - Пытался перекодировать с Iconv, но на "недопустимых символах"
ñ
- обнаруженный
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, так что он вам не нужен.
См дубликат