不能将英镑或欧元符号写入CSV文件 - Nodejs

时间:2016-07-08 01:14:47

标签: node.js excel character-encoding

我正在编写一个CSV文件,其中包含带有英镑和欧元符号的文本,但是当我在Excel中打开文件时,我看到了一些相当奇怪的行为。我在英镑之前看到了一些奇怪的A形符号,并且引用而不是欧元符号。我认为这可能是因为Excel不喜欢UTF8编码的文件。

fs.writeFileAsync("the-file.csv", text-containing-foreing-currency, "utf8");

有没有人知道在创建文件时解决这个问题的方法?我不希望用户在下载文件后必须使用excel做任何事情,我只是希望他们能够打开文件并看到正确的符号。

1 个答案:

答案 0 :(得分:1)

节点将符号写入文件应该没有任何问题,如果使用文本编辑器打开它,您应该看到正确的字符。

问题在于excel打开UTF8 csv文件。默认情况下,它采用ANSI编码,因此如果文件是UTF8,则会对字符进行加密。您可以使用text import wizard正确打开文件。 一般来说,这是excel的限制。最适合您的解决方法取决于您的操作系统和Excel版本。这是一个经过深思熟虑的话题,这里有一些好的读物:

Is it possible to force Excel recognize UTF-8 CSV files automatically?

Which encoding opens CSV files correctly with Excel on both Mac and Windows?