我通过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?这甚至意味着什么?
答案 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-8
(save
按钮旁边)。
答案 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。