2012-04-17 61 views
0

我有一个显示单词“Entrée”的简单网页。它看起来很完美,但是当我在Android中使用HTTPClient来显示应该显示这个单词的网页时,它不知道如何处理“é”。我并不熟悉字符代码等,但我一直在环顾四周,并看到大多数人推荐UTF-8。我如何确保Android可以读取这个特殊字符?Android不会显示PHP页面中的特殊字符

网页PHP代码:

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

任何想法?

+0

这与Android有关,而不是php。 – 2012-04-17 21:22:46

+1

@The Man它可能取决于PHP脚本设置的字符编码(而非)。 – 2012-04-17 21:23:59

+0

也许有些东西在我可以用来代替“é”的php代码中,这样它就可以在Android和网页上显示出来。 – EGHDK 2012-04-17 21:24:15

回答

2

这很可能是一个字符编码问题。 PHP脚本可能不会设置任何/正确的字符编码标题,因此您的浏览器和Android会采取任何他们喜欢的方式。

请不这样做,它的肮脏: 一个 快速黑客避免大多数字符编码麻烦逃避任何特殊(大部分非ASCII)字符 HTML entites。例如,将会是 &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中保存,这在编辑器中可能看起来不错,但在浏览器中查看时会炸毁你的脸。

+0

该代码给了我一个“Entr e”在网页上的输出。将尝试一些调整。编辑:它也在Android应用程序中给出了“Entr e”的输出。 – EGHDK 2012-04-17 21:39:43

+0

您是否将我们的PHP文件保存为UTF-8?如果您的PHP脚本正在发送正确的“Content-Type”标题,您可能还想使用Chrome开发人员工具或Firebug进行检查。 – 2012-04-17 21:42:01

+0

我刚刚尝试了上面的PHP代码片段,我跑进记事本,试图将它保存为ANSI ...你真的必须强制它作为UTF-8,然后它工作:)哦,并喜欢像SFTP/SCP的东西(而不是的FTP),如果时间到了,它不会与它认为文本文件将文件上传到服务器的内容混淆。 – 2012-04-17 21:52:25