【发布时间】:2010-11-26 04:38:24
【问题描述】:
我想在 PHP 中输出以下字符串:
ä ö ü ß €
因此,我手动将其编码为 utf8:
ä ö ü ß €
所以我的脚本是:
<?php
header('content-type: text/html; charset=utf-8');
echo 'ä ö ü ß €';
?>
前 4 个字符是正确的 (ä ö ü ß),但遗憾的是 € 符号不正确:
ä ö ü ß
你能告诉我我做错了什么吗?我的编辑器 (Notepad++) 具有编码 (Ansi/UTF-8) 和格式 (Windows/Unix) 的设置。我必须更改它们吗?
我希望你能帮助我。提前致谢!
【问题讨论】:
-
您应该使用支持 UTF-8 的编辑器。您所做的只是使用 ISO 8859-1 编写 UTF-8 的代码字。使用 UTF-8 你可以直接写
ä ö ü ß €。 -
啊,对不起,它是 Windows-1252 而不是 ISO 8895-1
-
但请注意,使用 UTF-8 可能会在文件开头插入 U+FEFF。而 PHP 根本不喜欢这样。
-
@Johannes -- 我从来没有遇到过这个问题。您在使用 UTF-8 编码文件时遇到过什么问题?
-
@warpech / @Johannes Rössel:这是字节顺序标记 (BOM)。这里有更多关于它的信息:decodeunicode.org/de/U+FEFF 在 Notepad++ 中,你可以选择“UTF-8 without BOM”作为编码,你不会遇到问题。