gpt4 book ai didi

ruby-on-rails - 如何克服 Excel CSV 编码噩梦 : "\xEF" from ASCII-8BIT to UTF-8"using Ruby on Rails

转载 作者:行者123 更新时间:2023-12-04 20:51:44 33 4
gpt4 key购买 nike

我正在尝试在 Rails 中解析 CSV 文件,除了保存在 Excel 中的任何内容(使用版本 16.26 进行测试)之外,对于 Windows 和 Mac(保存在 Numbers 和 Google 工作表中的 CSV 可以正常工作)。任何带重音的字符都会产生 "Encoding::UndefinedConversionError: "\xEF" from ASCII-8BIT to UTF-8".
Excel 声称它以 UTF-8 格式保存。

当我上传保存在 Excel 中的 CSV 时,我希望重音字符不会引发错误。

我尝试过的事情:

  • 将读取编码设置为 bom|utf-8 (根据 BOM link )、utf-8、iso-8859-1、utf-16、windows-1252、ascii-8bit (并在数组中循环遍历每个万一失败,然后将其从阵列中删除)
  • 当前代码使用 ISO8859-1:UTF-8 应该以 ISO8859-1 读取,然后以 UTF-8
  • 编码
  • 创建一个临时文件,将其转换为 binmode,CSV.parse(temp.path, encoding: "bom|utf-8") per the first answer in this thread .
  • data = CSV.parse(csv, headers: true, header_converters: :symbol, skip_blanks: true, encoding: 'ISO8859-1:UTF-8')

    如果我将 csv 保存在 Excel 中,然后将其保存在 google sheet 或 Numbers 中,然后上传它,它也可以工作。不幸的是,Excel 是我们用户上传的最常见的 CSV。

    最佳答案

    使用 csvreader gem 解决.内置的 CSV 解析器吸收了 rails。

    关于ruby-on-rails - 如何克服 Excel CSV 编码噩梦 : "\xEF" from ASCII-8BIT to UTF-8"using Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57827800/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com