当前位置: 首页 > 知识库问答 >
问题:

如何通过Excel CSV编码噩梦:使用Ruby on Rails将“\xEF”从ASCII-8BIT转换为UTF-8”

班承德
2023-03-14

我正在尝试解析Rails中的CSV文件,除了保存在Excel中的任何内容(使用16.26版进行测试)之外,它适用于Windows和Mac(保存在Numbers中的CSV

Excel声称它保存在UTF-8中。

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

我尝试过的事情:

>

  • 将读取编码设置为bom|utf-8(根据BOM链接)、utf-8、iso-8859-1、utf-16、windows-1252、ascii-8bit(并循环遍历数组中的每一个,以防其中一个失败,然后将其从数组中删除)

    当前代码使用ISO8859-1:UTF-8,它应该在ISO8859-1中读取,然后在UTF-8中编码

    创建临时文件,将其转换为binmode、CSV。根据该线程中的第一个答案解析(临时路径,编码:“bom | utf-8”)。

    data = CSV.parse(csv, headers: true, header_converters: :symbol, skip_blanks: true, encoding: 'ISO8859-1:UTF-8')
    

    如果我把一个保存在Excel中的csv保存在谷歌表单或数字中,然后上传,它也可以工作。不幸的是,Excel是我们用户上传的最常见的CSV。

  • 共有1个答案

    商泽宇
    2023-03-14

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

     类似资料:
    • 我可以使用模拟服务来模拟,如下所示,但是当我尝试验证模拟时,它会抛出错误。我怀疑是因为日期的价值。你能帮我一下可能是什么问题吗 模拟Jason文件: 真实服务提供商响应: 对实际提供程序运行时出错:1)在系统运行状况正常的情况下验证使用者和提供程序之间的协议,使用GET进行检查的请求返回一个响应,该响应具有匹配的正文失败/错误:expected(response_body)。要match_term

    • 本文向大家介绍PHP 将ASCII转换为UTF-8编码,包括了PHP 将ASCII转换为UTF-8编码的使用技巧和注意事项,需要的朋友参考一下 如果我们知道当前的编码是ASCII,则可以使用'iconv'函数将ASCII转换为UTF-8。原始字符串可以作为参数传递给iconv函数,以将其编码为UTF-8。 示例 具有特殊字符的字符串被分配给'str'变量。它以当前所在的编码以及需要转换为的编码传递

    • 问题内容: 一直以来都忽略了它,我目前正在强迫自己学习有关Java中的unicode的更多信息。我需要做一个关于将UTF-16字符串转换为8位ASCII的练习。有人可以启发我如何用Java做到这一点吗?我知道您无法用ASCII表示所有可能的unicode值,因此在这种情况下,无论如何我都希望仅添加超过0xFF的代码(坏数据也应该仅以静默方式添加)。 谢谢! 问题答案: 这个怎么样: 对于大型字符串

    • 问题内容: 我们有一个系统,客户(主要是欧洲人)输入的文本(使用UTF-8)必须分发到不同的系统,其中大多数接受UTF-8,但是现在我们还必须将文本分发到仅接受美国的美国系统。 -Ascii 7位 因此,现在我们需要将所有欧洲字符翻译成最近的美国Ascii。是否有任何Java库可帮助完成此任务? 现在,我们刚刚开始添加到转换表中,在该表中Å(瑞典AA)-> A等,在找不到与输入字符匹配的位置的情况

    • 我有一个简单的服务器端代码,它接受请求xml并将其作为字符串插入Oracle数据库Clob列。问题是客户端发送带有CP1251编码文本的请求xml,但我需要使用UTF-8编码将其插入Oracle。现在我用于CP1251的代码是: 此代码识别CP1251中编码的文本。这项任务是使用UTF-8编码的可读文本进行相同的操作。请提出任何意见。 我尝试了这个,但它产生了不可读的字符,而不是西里尔:

    • 问题内容: 我正在尝试在python中编写脚本以将utf-8文件转换为ASCII文件: 当我运行此脚本时,出现以下错误: UnicodeDecodeError:’ascii’编解码器无法解码位置13的字节0xef:序数不在范围内(128) 我认为可以使用encode方法中的ignore参数忽略错误。但是似乎没有。 我愿意接受其他转换方式。 问题答案: data=”UTF-8 DATA” udata