为什么我的页面无法显示é,而是显示 ?

时间:2011-06-25 12:29:12

标签: html character-encoding

我在html中将页面编码设置为utf-8:

meta http-equiv =“content-type”content =“application / xhtml + xml; charset = UTF-8”

在HTTP标题中,我有:

Content-Type text / html;字符集= UTF-8

为什么无法正确显示é?

由于

更新: 数据包含'é'从互联网抓取,抓取工具是用Microsoft .Net编写的。 我使用Mysql .Net Connector来连接mysql。

显示'é'的页面是用PHP编写的。

5 个答案:

答案 0 :(得分:9)

您需要添加更多信息,但通常是被视为UTF-8的数据中ISO-8859-1字符的符号。

来自

  • 声称为UTF-8但实际保存为ISO-8859-1 / Windows-8252的源文件 - 在编辑器或IDE中检查文件编码

  • 使用ISO-8859-1的数据库连接,即使数据库表是UTF-8

答案 1 :(得分:2)

最可能的解释是该页面使用UTF-8进行 编码,因此当浏览器尝试解码文本时,它使用错误的编码进行编码。

您需要确保actual document encodingclaimed encoding

相匹配

答案 2 :(得分:1)

确保您的文件开头没有BOM (byte order mark)。我最近遇到了这个问题,即使文件保存为utf8(多次检查),BOM也混淆了firefox并错误地显示了变音符号(我将html <meta>标签设置为正确的编码和http标头)< / p>

答案 3 :(得分:1)

有同样的问题,即使使用html设置charset = UTF-8 只需使用记事本和File-SaveAs打开html页面,编码为UTF-8 重新加载页面,它应该没问题。

燕姿

答案 4 :(得分:0)

如果您实际使用htmlentities(),则可以解码一段特定的代码,例如

htmlentities($string, $flags, $charset);

这将对字符串进行编码。 使用$ flags,您可以在某种程度上决定要编码的内容。

此功能可用于防止sql注入

尽管此参数在技术上是可选的,但是如果您使用的是PHP 5.5或更早版本,或者如果给定输入的default_charset配置选项设置不正确,则强烈建议您为代码指定正确的值。

编辑:来源htmlspecialchars