在Excel中打开UTF-8 CSV文件,而不强制用户设置编码

时间:2017-10-24 12:11:36

标签: javascript excel csv utf-8 utf-16

我有一个我用Javascript生成的CSV文件。我将编码设置为utf-8,在将数据和URI编码为输出之前附加数据和URI,如下所示:

const csvContent = data:text/csv;charset=utf-8,${csvData}

const encodedUri = encodeURI(csvContent)

在以标准(.e.g LibreOffice)强制执行UTF-8编码的应用程序中打开文件时,该文件以非ASCII文本,法语和阿拉伯语为例打开。但是,当我尝试在Excel中打开文件时,据我所知,默认情况下使用的是Windows-1252,输出可以理解地显示垃圾文本。

我的问题是;无论如何强制Excel以UTF-8打开文件而无需用户手动更改其编码?我不能指望用户这样做。

1 个答案:

答案 0 :(得分:2)

您可以在文件开头包含UTF-8 BOM(0xEF,0xBB,0xBF)。这将使Microsoft软件将其识别为UTF-8。

请参阅:https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8