【发布时间】:2012-03-24 03:06:33
【问题描述】:
我正在处理大量编码为 utf-8 的 HTML 文件。法语中的重音字符很多。我一直在将它们转换为 HTML 实体,但我注意到即使在 IE5.5(根据 IE 测试人员)中,未转换的重音字符也能正常显示。
为了安全起见,我是否应该关注字符显示并将它们全部转换为 HTML 实体?
【问题讨论】:
标签: html character-encoding html-entities diacritics
我正在处理大量编码为 utf-8 的 HTML 文件。法语中的重音字符很多。我一直在将它们转换为 HTML 实体,但我注意到即使在 IE5.5(根据 IE 测试人员)中,未转换的重音字符也能正常显示。
为了安全起见,我是否应该关注字符显示并将它们全部转换为 HTML 实体?
【问题讨论】:
标签: html character-encoding html-entities diacritics
您需要记住的是法语是 UTF-8 家族的一部分,还有葡萄牙语、西班牙语等,因此它们将在适当的位置正确显示 UTF-8 标记并提供浏览器也使用 UTF-8页面。
问题是当使用强制另一个字符集的浏览器的人来到页面时,这会破坏未编码的字符。这种情况在巴西发生了一点,许多浏览器没有设置为自动检测字符集,而是设置为 ISO-8859-1,这在这里很常见。
因此,尽可能对所有“特殊”字符进行编码,以实现最普遍的访问。
希望对您有所帮助!
【讨论】:
如果文件是 UTF-8 编码的,则应将 Content-Type 标头设置为 text/html; charset=UTF-8 并在页面上具有等效的元标记:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
这为浏览器提供了正确显示 UTF-8 字符的所有信息。无需对重音字符进行编码。
【讨论】:
通常没有理由为重音字母等字符使用实体。使用它们是有效的,但往往会混淆源代码,因此可能会导致错误。
但是,在某些情况下,实体是必需的。原因与浏览器无关,而与创作方有关。特别是,如果您需要使用不能很好地处理重音字母的编辑器或创作程序编辑文件,您可能会发现实体很有用。如果数据必须通过一些有类似问题的软件,这同样适用。在某些情况下,您需要在无法控制 HTTP 标头并且标头指定的编码不允许您直接输入所有字符的环境中工作。
【讨论】: