我有一个简单的网页,显示单词“Entrée”。它在网络上看起来很完美,但是,当我在 Android 中使用 HTTPClient 来显示应该显示这个单词的网页时,它不知道如何处理“é”。我对字符编码之类的不熟悉,但我一直在环顾四周,发现大多数人都推荐UTF-8。如何确保 Android 可以读取这个特殊字符?
网页PHP代码:
<?php echo "Entrée"; ?>
有什么想法吗?
最佳答案
这很可能是字符编码问题。 PHP 脚本可能没有设置任何/正确的字符编码 header ,因此您的浏览器和 Android 会采用它们喜欢的任何方式。
请不要这样做,这很脏: 避免大多数字符编码问题的快速破解是将任何特殊(主要是非 ASCII)字符转义为 HTML entites 。例如,é 为 é
。如果您只想回显“Entrée”
,那么只需在您最喜欢的文本编辑器中查找并替换即可。
这样做,会让世界变得更美好:
如果您计划输出静态单词以外的任何内容,例如数据库中的一些动态文本等,您应该真正尝试做正确的事情:使您的 PHP 脚本输出 UTF-8并发送了正确的 Content-Type
header 。
我的 PHP 很生疏,但是这样的东西应该可以工作:
<?php
header('Content-type: text/plain; charset=UTF-8');
echo "Entrée";
?>
您还需要确保您的文本编辑器或 IDE 将 PHP 文件保存为 UTF-8(不是 ANSI、ASCII、Windows-1252 等)或é
将会变得困惑,并且没有标题设置可以修复它。大多数编辑器碰巧会以 ANSI 格式保存,这在您的编辑器中可能看起来不错,但在浏览器中查看时却很糟糕。
关于java - Android 不会显示 PHP 页面的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199354/