带重音的E无法正确显示

时间:2012-10-18 10:40:55

标签: html character-encoding

在我的页面上,顶部中间的文字(«Ce site Internet。»)包含带有重音的E,在我的计算机上显示为问号。

尽管我的head标签中有meta charset =“UTF-8”,但是当使用Notepad ++打开时,包含文本的PHP文件显示为UTF-8。

那是怎么回事?

4 个答案:

答案 0 :(得分:17)

当浏览器无法理解正在读取的数字时,浏览器会显示这些内容。 UTF-8是自同步的。与其他多字节字符编码不同,您始终知道UTF-8的位置。如果您看到数字192-247,则您知道您处于多字节序列的开头。如果你看到128-191你知道你在一个中间。没有错过第一个数字并将文本的其余部分搞错的危险。 这意味着在UTF-8中,序列191后跟224将永远不会自然发生,因此浏览器不知道如何处理它并显示 。

在头标中使用以下内容:

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

请参阅:http://coding.smashingmagazine.com/2012/06/06/all-about-unicode-utf8-character-sets/

答案 1 :(得分:2)

虽然您在元和HTTP标头中宣布内容为UTF-8,但它不是正在发送的UTF-8。您可能需要检查您的PHP设置,它实际上是以正确的编码输出内容。 http://php.net/manual/en/mbstring.configuration.php

答案 2 :(得分:1)

您是否使用ASCII / HTML代码作为重音字符?如果没有,here's a list of them。搜索'E acute'并且您应该对该角色的代码进行细化(我认为它是&Eacute;)。 起初我以为这是你使用的字体系列,但我不认为是因为我在浏览器中禁用了所有样式,它们仍然显示为问号。

可以在以下位置找到更多HTML字符实体 https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

答案 3 :(得分:1)

页面实际上不是用UTF-8编码的,而是用Latin1编码的。您需要实际以UTF-8保存源代码文件,或者确保它们以UTF-8编码输出。目前,您在网站声称要编码的内容与实际编码内容之间存在分歧。