我们可以用javascript将ANSI编码的CSV文件转换为utf-8编码的文件吗?

我们可以用javascript将ANSI编码的CSV文件转换为utf-8编码的文件吗?,javascript,encoding,character-encoding,Javascript,Encoding,Character Encoding,我已经寻找这个问题的答案好几天了。实际上,我需要将ansi编码的csv文件上传到web服务。前端应用程序读取文件并将其内容编码到base64,然后以json格式将其发送到web服务。但当我尝试使用javascript读取文件时,非英语unicodes会被更改为其他内容 有没有办法读取javascript中ansi编码的csv文件并将其编码转换为utf-8 以我的研究,我认为这是不可能的。文件本身必须为UTF-8格式 任何建议都会大有帮助。很抱歉,我一开始误解了你们的问题。你的麻烦就发生在阅读文件

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

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

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


任何建议都会大有帮助。

很抱歉,我一开始误解了你们的问题。你的麻烦就发生在阅读文件的那一刻。当试图加载错误的编码时,在内容被破坏后尝试转换文件是无用的。受和的启发,我在本文中提出了FileReader API


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

您是指ISO 8859-1还是Windows CP1252?如果文件(csv)类型为UTF-8,则上述代码可以工作,否则某些字符无法被javascript读取。要尝试utf8包,我不在节点服务器环境中。我已经尝试运行上述代码,但没有成功。我发现非英语unicodes损坏的根源是在从文件系统读取文件时。当触发html文件按钮时。我正在从触发的事件中获取文件内容。当它在控制台中打印出来时。非英语unicodes已经损坏。当我用这些数据执行上述代码时,它根本不起作用。@ManiRai,utf8包在浏览器中是可用的,这里提到了它。您只需下载并将其包含在html中即可page@ManiRai更新的回答:基里尔。。。它现在起作用了。。。。。非常感谢你。。。但我想我也需要改进我的问题。。。。。
  var r = new FileReader();
  r.readAsText(f, 'windows-1252');