【发布时间】:2012-10-29 21:19:34
【问题描述】:
我一直在处理 Outlook 导入(在导出到 Outlook 格式中链接),但我遇到了编码问题。我通过导出我的 LinkedIn 联系人获得的 Outlook 格式 CSV 不是 UTF-8。像ñ 这样的字母在调用str.to_s.mb_chars.normalize 时会导致mongoid_search gem 出现异常。我认为编码是问题所在,因为当我调用mb_chars (see first code example) 时。我不确定这是否是 gem 中的错误,但我还是被建议清理数据。
通过 File Picker,我尝试使用他们新的、社区支持的 gem 来上传 CSV 数据。我尝试了三种编码检测器和转码器:
- Python 库
chardet的 Ruby 端口- 未按预期工作
- 端口仍然包含 Python 代码,阻止它在我的应用程序中运行
-
rchardet19宝石- 检测到
iso-8859,置信度为.8/1。 - 尝试使用 Iconv 进行转码,但在
ñ处因“非法字符”而崩溃
- 检测到
-
Charlock_Holmes宝石- 以
33/100置信度检测到windows-1252 - 我假设这是实际的编码,
rchardet得到了iso-8859,因为这是基于此的。 - 这个 gem 使用 ICU 并且有一个支持 Heroku 的维护分支“bundle-icu”。当我尝试使用
charlock进行转码时,我收到错误U_FILE_ACCESS_ERROR,ICU 错误代码表示“无法打开文件”
- 以
有人知道在这里做什么吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 encoding chardet