3

我通过 W3C HTML 验证器运行我的网页并收到此错误。

编码 ascii 不是正在使用的字符编码的首选名称。首选名称是 us-ascii。(Charmod C024) ✉ 第 5 行,第 70 列:内部编码声明 utf-8 与文档的实际编码不一致 (us-ascii)。

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

显然,即使我在元标记中指定了 UTF-8,我也没有“实际”使用 UTF-8。

我如何“实际上”使用 UTF-8?那有什么意思?

4

4 回答 4

7

验证器的 HTML5 模式将编码声明之间的不匹配视为错误。在消息中,“内部编码声明”是指meta诸如 的标记<meta charset=utf-8>,而“实际编码”(误导性地)是指 HTTP 标头中的编码声明。

根据当前的 HTML 规范(HTML5 只是一个草案),不匹配不是错误,HTTP 标头获胜。

如果您的文档仅包含 Ascii 字符,则没有真正的问题。Ascii 编码的数据也采用 UTF-8 编码,因为在 UTF-8 中,任何 Ascii 字符都表示为单个字节,其值与 Ascii 中的值相同。

这取决于服务器端使用的软件是否以及如何更改 HTTP 标头。如果他们现在指定 charset=ascii,看起来,这不是一个真正的问题,除非在验证中,前提是您只继续使用 Ascii 字符。但它有些奇怪和过时。尝试将那里的编码信息更改为 charset=utf-8。您无需更改实际编码,但如果您稍后添加非 Ascii 字符,请确保通过在创作程序中选择合适的命令或选项将文件保存为 UTF-8 编码。

于 2012-04-15T05:43:34.660 回答
3

在记事本中打开文件,然后save as> UTF-8(按钮旁边save)。

于 2012-04-15T01:02:57.687 回答
2

在类 unix 系统上,您可以使用iconv工具将文件从一种编码转换为另一种编码。它也可以从编程语言(例如php)的范围内使用。正确的函数具有相同的名称: http ://www.php.net/manual/en/function.iconv.php

于 2012-04-15T01:12:47.817 回答
1

指定编码是一回事。以适当的编码保存文档是另一回事。在支持UTF-8编码
的编辑器中编辑您的文档。最好是没有 BOM 的 UTF-8。Notepad++可能是一个好的开始。 也读一读:UTF-8 一直到.

于 2012-04-15T01:16:11.777 回答