Android 不会在 PHP 页面显示特殊字符


Android won't show special character from PHP page

我有一个简单的网页,显示"主菜"这个词。它在网络上看起来很完美,但是当我在Android中使用HTTPClient来显示应该显示这个单词的网页时,它不知道如何处理"é"。我不熟悉字符代码之类的,但我一直在环顾四周,发现大多数人都推荐 UTF-8。如何确保安卓可以读取这个特殊字符?

网页PHP代码:

<?php echo "Entrée"; ?>

有什么想法吗?

这很可能是字符编码问题。PHP 脚本可能没有设置任何/正确的字符编码标头,因此您的浏览器和 Android 会随心所欲地假设。

请不要这样做,这很脏: 避免大多数字符编码麻烦的快速技巧是将任何特殊(主要是非 ASCII)字符作为 HTML 内容进行转义&eacute;。如果您只想echo "Entrée",那么只需在您喜欢的文本编辑器中查找和替换即可。

相反,这样做会使世界变得更美好:

如果你打算输出一个静态单词以外的任何东西,比如从数据库中输出一些动态文本,你应该真正尝试做正确的事情:让你的PHP脚本输出UTF-8并发送正确的Content-Type头。

我的PHP非常生疏,但是这样的东西应该可以工作:

<?php
header('Content-type: text/plain; charset=UTF-8');
echo "Entrée";
?>

您还需要确保您的文本编辑器或 IDE 将 PHP 文件保存为 UTF-8(不是 ANSI、ASCII、Windows-1252 或类似文件),否则é将全部搞砸,没有标头设置可以修复它。大多数编辑器会碰巧保存在 ANSI 中,这在您的编辑器中可能看起来不错,但在浏览器中查看时会在您的脸上爆炸。