如何更改HTML文档的“实际编码”?

时间:2012-04-15 01:01:17

标签: html character-encoding

我通过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 个答案:

答案 0 :(得分:6)

验证器的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编码。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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