2016-07-08 130 views
0

我正在写一个CSV文件,其中包含带英国英镑和欧元符号的文本,但是当我在Excel中打开该文件时,发现一些相当奇怪的行为。我在英镑之前看到了一些奇怪的A型符号,并且引用了欧元符号而不是引号。我想这可能是因为Excel不喜欢UTF8编码的文件。无法将英镑或欧元符号写入CSV文件 - Nodejs

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

有没有人知道一种方法来解决这个问题,而创建该文件?我不希望用户在下载文件后不得不对excel进行任何操作,我只是希望他们能够打开文件并查看正确的符号。

+0

这听起来好像你是一个资源管理器窗口中双击CSV打开它(默认文件关联)在Excel中。使用VBA的[Workbooks.OpenText方法](https://msdn.microsoft.com/en-us/library/office/ff837097.aspx),将Excel打开到空白工作簿并使用数据获取外部数据►从文本中指定在向导的第一页上使用文件原始代码页或使用文件,打开,文本文件并使用文件原点指定代码页。 – Jeeped

+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?