2011-09-14 129 views
2

我在写一个使用php的web应用程序。
主文件(index.php)里面有一些希伯来字符,当我加载它时,它们显示为“?”。
PHP和HTML文件的编码是UTF-8。 当我将index.php扩展名更改为HTML时,希伯来语字符显示得很好。 我试图把此行的代码:PHP编码希伯来文

<?php 
header('Content-type: text/html; charset=UTF-8') 
?> 

,但它并没有帮助。

我仍然想使用该文件作为PHP。我怎样才能让希伯来字符显示?

+0

将您的编码IDE设置为UTF-8! ;) – JellyBelly

+0

@JellyBelly:我使用的是Eclipse,编码是UTF-8。 –

+0

您可以尝试在浏览器中加载页面的PHP版本,以便显示'?'然后循环浏览器中的一些常用字符编码。在Chrome中,这些位于“查看”菜单下。试试ISO-8859-1,UTF-8,ISO-8859-8等,看看它们中的一个是否看起来正确。然后从那里排除故障。 – Jonathan

回答

3

观光步:

  1. 确保文件被正确编码(例如用isutf8或类似)。
  2. 来自哪里的文字?如果它来自数据库,则文本是否以UTF-8存储?在进行任何查询之前,数据库的连接是否设置为UTF-8?
  3. 确保标题正确发送(使用Firebug或Chrome开发者工具或Opera蜻蜓)
  4. 检查标头中的字符集meta元素。 (所有这些应设置为UTF-8)
  5. 确保浏览器正常工作(在页面上单击鼠标右键,“网页信息”,或在大多数浏览器类似)

询问是否需要帮助任何这些。

+1

问题解决了。 我在记事本+ +中打开了PHP文件,将其编码为“没有BOM的UTF 8”,它工作。 现在,如果任何人都可以解释什么是“没有BOM”,那就太好了。 –

+0

http://en.wikipedia.org/wiki/Byte_order_mark –

+0

BOM在UTF-8中是冗余的(因为多字节UTF-8字符的码位以非特定的非尾码方式映射到几个字节)。它不应该被使用,现在主要是遗留的事情。我可以很容易地相信,在某些浏览器中添加BOM到UTF-8会导致问题。干得好,解决它。我猜你正在使用Windows,因为我想不出任何其他平台会随文本编辑器一起添加BOM到UTF-8文件。 –