【问题标题】:Read a csv file containing special characters(different spoken language)读取包含特殊字符的 csv 文件(不同的口语)
【发布时间】:2016-11-10 23:26:10
【问题描述】:

我正在用印地语(语言)编写一个 csv 文件,当我解析它时会得到不同的结果。

例如,我制作下面的 csv 文件。

1234444070;आज आप कैसे हैं???

当我使用open(csv_aws_url).read 读取同一个文件时。我明白了:

"1234444070;\xE0\xA4\x86\xE0\xA4\x9C \xE0\xA4\x86\xE0\xA4\xAA \xE0\xA4\x95\xE0\xA5\x88\xE0\xA4\xB8\xE0\xA5\x87 \xE0\xA4\xB9\xE0\xA5\x88\xE0\xA4\x82???\r\n"

在解析时读取相同的内容会发生这种情况吗?

【问题讨论】:

  • 尝试将puts 放在open 之前。看起来您只是看到了 String#inspect 输出,这只是相同数据的不同视觉表示。

标签: ruby-on-rails ruby csv opencsv


【解决方案1】:

试试open(csv_aws_url, encoding: "utf-8").read

文件很可能以不同的编码保存。

Ruby read CSV file as UTF-8 and/or convert ASCII-8Bit encoding to UTF-8 应该会有所帮助。

【讨论】:

  • open(csv_aws_url).read.force_encoding('utf-8') 成功了!
  • 这对我有用,谢谢。
【解决方案2】:
open(csv_aws_url).read.force_encoding('utf-8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多