UTF-8 文件在 Excel 中不显示中文字符

UTF-8 文件在 Excel 中不显示中文字符

我正在创建一个使用 UTF-8 编码的 CSV 文件。

如果我用 Notepad++ 打开它,它可以正确显示中文字符。

如果我用记事本打开它,它可以正确显示中文字符。

但是,如果我使用 Excel 打开它,我会看到垃圾值。

如果我使用记事本打开它并按 Control+S 并关闭文件并在 Excel 中重新打开它,它会完美地显示字符。

有任何线索知道这里发生什么了吗?

我还尝试创建一个编码为 GB2312 的普通 CSV 文件。然后我使用 Unix 命令 iconv 将文件从“GB2312”转换为“UTF-8”

此命令会删除所有中文字符,仅显示英文字符。所以,这不是解决方案。

请提出建议。

编辑 -

它不显示垃圾值,但显示 ANSI 编码。为什么它默认选择 ANSI 编码。为什么在 Notepad/Notepad++ 中打开同一个文件后,它会以 UTF-8 打开。

另外,为什么只需 Control+s 就可以在 Excel 中正确打开它。

答案1

在 Linux 中,UTF8 通常无需保存物料清单由于 UTF8 BOM 是可选的,因此应用程序可能无法检测到正确的编码。您可以尝试以带 BOM 的 UTF8 格式保存它们,或者改用 UTF16。

答案2

我知道 UTF-8 编码的 BOM 序列,但不知道如何将其添加到我的文件中。

现在,BOM 序列是 0xEF、0xBB、0xBF,所以我尝试将其添加为纯文本,但没有成功。因此,我将这些的 ASCII 值添加到我的 CSV 中,它成功了。

ASCII 值为 =

new.text = chr$(239) & chr$(187) & chr$(191) |连接

只需将其添加为第一行即可!

感谢克里斯的建议。

相关内容