aja*_*221 9 html doctype character-encoding html-validation
我刚刚使用W3验证器验证了一个html doc ,发现如果我使用:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Run Code Online (Sandbox Code Playgroud)
有:
<!DOCTYPE HTML>
Run Code Online (Sandbox Code Playgroud)
Line 4, Column 72: Using windows-1252 instead of
the declared encoding iso-8859-1.但是,如果我使用它,它是固定的:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Run Code Online (Sandbox Code Playgroud)
我真的不明白发生了什么,我甚至不知道如何使用DOCTYPE标签,我只是复制并粘贴了一个来自网络的标签.
有人能指出我正确的方向来理解:
Alo*_*hci 17
更改DOCTYPE只是关闭警告 - 它实际上并没有修复任何东西.
iso-8859-1并且windows-1252是非常相似的编码.它们的区别仅在于与从0x80到0x9F的32字节值相关联的字符,这些iso-8859-1字符映射到控制字符,windows-1252并且映射到某些有用的字符,例如欧元符号.
控制字符在HTML中是无用的,并且Web作者经常错误地声明iso-8859-1并使用这32个值中的一个或多个,就好像它们正在使用一样windows-1252,因此浏览器在看到iso-8859-1声明的字符集时会自动将其更改为windows-1252.
验证器只是警告你会发生这种情况.如果您没有使用任何32字节值,那么您可以简单地忽略警告 - 这不是错误.如果你是,并且你真的想要iso-8859-1解释字节值而不是windows-1252解释,那么你做错了.
同样,这种切换发生在任何DOCTYPE的浏览器中,只是HTML5验证器比HTML4验证器更能帮助它.
情侣点数:
<meta charset="iso-8859-1">也就是说,HTML验证器在这个时代并没有那么多用途.
另外,为什么需要指定特定的字符集?
编辑:
我的不好,显然HTML4的默认值是iso = 8869-1.也就是说,HTML5的默认字符集是utf-8.
有关HTML5 doctype的更多信息,请参阅John Resig的这篇文章
| 归档时间: |
|
| 查看次数: |
91999 次 |
| 最近记录: |