为什么在ISO-8859-1中显示以下字符?

时间:2014-08-25 15:24:38

标签: html encoding character-encoding special-characters

我有以下html:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
    会意字 / 會意字 huìyìzì
</body>

当我在firefox中运行它时,它显示中文字符就好了。怎么用ISO-8859-1角色?我以为你需要UTF-8?

2 个答案:

答案 0 :(得分:1)

我无法重现您成功的渲染:

Not rendering correctly in Firefox

...但HTML 5定义了a fairly complex character encoding detection method,直到第9步才对<meta>没有任何关注。

一般情况下,你应该避免使用UTF-8以外的编码,绝对不应该对文档的编码撒谎。

答案 1 :(得分:1)

最可能的解释是该文档实际上是UTF-8编码的,并且浏览器会以这种方式对其进行处理,尽管meta标记。根据{{​​3}}(主要反映浏览器行为),如果满足以下任何条件,meta标记将被忽略:

  • 用户已指示(通过例如视图→编码命令)浏览器使用特定编码。
  • 页面以字节开头,表示UTF-8或UTF-16中的字节顺序标记。实际上,如果文件使用“另存为UTF-8(带BOM)”等命令保存在编辑器中,则会以此方式启动。
  • HTTP标头指定Content-Type标头中的编码。

你可以通过使用例如以下方法找出其中的哪一个。 HTML5 encoding sniffing algorithm。它允许您将HTTP响应标头和实际数据视为字节。浏览器中的开发人员工具具有类似的功能。