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