Php 尽管有UTF-8头和字节顺序标记,Umlauts在excel中未正确显示

Php 尽管有UTF-8头和字节顺序标记,Umlauts在excel中未正确显示,php,excel,csv,utf-8,Php,Excel,Csv,Utf 8,我正在将数据写入一个csv,其中有时包含umlauts(äöü)。我用过: 并添加到第一行数据中 chr(239).chr(187).chr(191)."SEP=\t"; 然后填写数据。然而,即使如此,UMLAUT在windows上的excel和mac上显示为例如ÃœforÜ 是否需要做些什么才能正确执行此操作?使用正确的ASCII表。äöü由Chr(228)、Chr(246)和Chr(252)生产。从键盘输入时,您可以使用Alt+0228、0246和0252。@Varia

我正在将数据写入一个csv,其中有时包含umlauts(äöü)。我用过:

并添加到第一行数据中

chr(239).chr(187).chr(191)."SEP=\t";
然后填写数据。然而,即使如此,UMLAUT在windows上的excel和mac上显示为例如
Ü
for
Ü


是否需要做些什么才能正确执行此操作?

使用正确的ASCII表。äöü由Chr(228)、Chr(246)和Chr(252)生产。从键盘输入时,您可以使用Alt+0228、0246和0252。@Variatus no。这些字节值用于单字节ISO8859-1和cp1252编码,而不是UTF8。简单的经验法则是,如果您的字符由一个值大于127的单字节表示,则不是UTF8。@Sammitch我认为OP的应用程序中不需要UTF-8字符代码应用程序。我认为他应该使用ASCII,系统会将它们转换为UTF-8。@Variatus我甚至不知道从哪里开始,你刚刚发布的内容都有问题。我在本地复制了这一点,问题似乎是当Excel看到
SEP
规范时,它忘记了在读取该规范时检测到的字符集BOM.有一些不太吸引人的解决方法,但你也可以简单地使用逗号或分号作为分隔符,跳过
SEP
和这个问题。
chr(239).chr(187).chr(191)."SEP=\t";