我正在使用UTF-8编码创建一个CSV文件。
如果我使用Notepad ++打开它,它会正确显示中文字符。
如果我使用记事本打开它,它会正确显示中文字符。
但是,如果我使用Excel打开它,我会看到垃圾值。
如果我使用记事本打开它并按下Control + S并关闭文件并在Excel中重新打开,它会完美地显示字符。
有什么线索在这里?
我还尝试创建一个包含GB2312编码的普通CSV文件。然后我使用Unix命令iconv将文件从“GB2312”转换为“UTF-8”
此命令删除所有中文字符,仅显示英文字符。所以,这不是一个解决方案。
请建议。
编辑 -
它不显示垃圾值,但显示ANSI编码。为什么默认选择ANSI编码。为什么在Notepad / Notepad ++中打开相同的文件后,它会打开UTF-8。
另外,为什么只有Control + s才能正确地在Excel中打开它。
答案 0 :(得分:0)
我知道使用UTF-8编码的BOM序列,但不知道如何将其添加到我的文件中。
现在,BOM序列是0xEF,0xBB,0xBF,所以我尝试将其添加为纯文本,但它没有用。所以,我将这些的ASCII值添加到我的CSV中,它可以工作。
ASCII值为=
new.text = chr $(239)& chr $(187)& chr $(191)|连锁
只需将其添加为第1行即可使用!