没有正确显示

时间:2009-10-22 19:38:01

标签: php utf-8

我在网页上显示 时遇到问题,在PHP中使用utf8_decode()后显示为 。

我一直在使用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

我刚注意到,所有其他特殊字符,如®,™等也无效。

5 个答案:

答案 0 :(得分:5)

请确保您已在HTML文档的代码中指定了UTF-8编码:

  <meta content="text/html; charset=UTF-8" http-equiv="content-type" />

答案 1 :(得分:1)

utf8_encode('&nbsp;')==='&nbsp;'以来这很奇怪。无论是utf8还是latin1编码,&nbsp;的字节序列都是相同的。
剩下的字符串是否正确编码了utf8?

编辑:当你告诉浏览器你的页面被utf8编码时,为什么首先使用utf8_decode()(将utf8编码的字符串转换为latin1)?

答案 2 :(得分:1)

你检查过php文件本身的编码吗?

在某些Windows编辑器(例如notepad ++)中,当您检查文件的错误编码时,即使正确设置元标记,也会遇到一些utf-8字符问题。

在notepad ++中,您可以在本节中更改它:

Change notepad++ file encoding http://img198.imageshack.us/img198/9081/notepadp.png

如果你没有使用notepad ++,我们需要你的设置中的一些更详细的信息,比如使用的操作系统,IDE等。

答案 3 :(得分:0)

还要确保通过这样的方式为文档提供正确的dtd定义:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

作为php文件中的第一行html。

答案 4 :(得分:0)

使用utf8_decode时,传递给此函数的字符串是从哪里加载的?你是从数据库加载数据?你有任何包含的文件吗?如果是这样,请检查它们是否都编码为GmonC编写的。尝试在页面中的某处回显&nbsp;,看看它是否会正确显示。如果没有,请尝试制作干净的.php文件,然后查看问题是否仍然存在。如果不是某些包含文件可能是问题,因为它可能有不同的编码