【问题标题】:Can we convert ANSI encoded CSV file to utf-8 encoded file with javascript?我们可以使用 javascript 将 ANSI 编码的 CSV 文件转换为 utf-8 编码的文件吗?
【发布时间】:2015-06-10 05:00:21
【问题描述】:

我这几天一直在寻找这个问题的答案。实际上,我需要将 ansi 编码的 csv 文件上传到 Web 服务。前端应用程序读取文件,将其内容编码为 base64,并以 json 格式发送到 Web 服务。但是,当我尝试使用 javascript 读取文件时,非英语 unicodes 会被更改为其他内容。

有没有办法在javascript中读取ansi编码的csv文件并将其编码转换为utf-8?

根据我的研究,我认为是不可能的。文件本身必须是 UTF-8 格式。

任何建议都会有很大帮助。

【问题讨论】:

  • 您是指 ISO 8859-1 还是 Windows CP1252?

标签: javascript encoding character-encoding


【解决方案1】:

很抱歉,我一开始误读了您的问题。您的麻烦出现在阅读文件的那一刻。在尝试以错误的编码加载时,在内容被破坏后尝试转换文件是没有用的。我在 fiddle 中提出了 FileReader API,灵感来自 this examplearticle on html5rocks

  var r = new FileReader();
  r.readAsText(f, 'windows-1252');

我在这里看到的唯一问题是没有自动编码检测。在加载文件之前你需要知道编码。

【讨论】:

  • 如果文件(csv)类型是 UTF-8,那么上面的代码就可以工作,否则一些字符不会被 javascript 读取。
  • 尝试utf8包我不在节点服务器环境中。我已经尝试运行上面的代码但没有成功。我发现非英语 unicodes 损坏的根源是从文件系统读取文件时。当触发 html 文件按钮时。我正在从触发的事件中获取文件内容。到它在控制台中打印出来的时候。非英语 unicode 已经损坏。当我用这些数据执行上述代码时,它根本不起作用。
  • @ManiRai,utf8 包可以在浏览器中使用,那里有提到。您只需下载file 并将其包含在您的 html 页面中
  • @ManiRai 更新答案
  • 真棒基里尔...它现在就像一个魅力......非常感谢你......但我想我也需要改进我的问题......
猜你喜欢
  • 1970-01-01
  • 2014-02-17
  • 2015-02-17
  • 1970-01-01
  • 2011-11-20
  • 2020-10-11
  • 2013-09-12
  • 2011-11-07
  • 2017-02-01
相关资源
最近更新 更多