相关疑难解决方法(0)

HTML5是否需要charset元标记?

W3C "与HTML4的HTML5差异"工作草案指出:

对于HTML语法,作者需要声明字符编码.

"必需"是什么意思?

显然,浏览器仍然会在没有charset元标记的情况下呈现HTML5.如果未指定编码,浏览器将使用哪种编码?

基本上,我想知道是否确实需要包含<meta charset="">,或者99%的浏览器是否会使用正确的编码.

这是链接:http://www.w3.org/TR/html5-diff/#character-encoding

meta html5 w3c character-encoding

21
推荐指数
2
解决办法
1万
查看次数

如果 HTML5 的默认字符编码是 UTF-8,为什么还需要在 HTML5 文档中指定字符编码?

我有以下HTML5文档:

\n\n
<!DOCTYPE html>\n<html>\n    <head> </head>\n    <body>\n        <p>Betr\xc3\xa4ge: 20\xe2\x82\xac</p>\n    </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

上述 cod 的输出如下:

\n\n
Betr\xc3\x83\xc2\xa4ge: 20\xc3\xa2\xe2\x80\x9a\xc2\xac\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试了下面的HTML5代码:

\n\n
<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset="UTF-8">\n    </head>\n    <body>\n        <p>Betr\xc3\xa4ge: 20\xe2\x82\xac</p>\n    </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

上面的代码给出了我所期望的以下输出:

\n\n
Betr\xc3\xa4ge: 20\xe2\x82\xac\n
Run Code Online (Sandbox Code Playgroud)\n\n

据我所知,HTML5的默认字符编码是UTF-8。它的默认值意味着不应在<meta>标记内显式指定它。

\n\n

因此,在我的第一个代码片段中,我跳过了代码<meta charset="UTF-8">,但我得到了一些奇怪的意外结果。

\n\n

<meta charset="UTF-8">然后,我尝试在一对标签之间添加代码<head>,它工作得很好,我得到了预期的结果。

\n\n

所以,我的问题是,既然HTML5中的默认字符编码已设置为UTF-8,为什么如果没有明确指定它就不起作用?

\n\n

为什么需要在HTML5文档中指定字符编码“UTF-8”

\n

html unicode encoding utf-8 character-encoding

6
推荐指数
2
解决办法
2216
查看次数

标签 统计

character-encoding ×2

encoding ×1

html ×1

html5 ×1

meta ×1

unicode ×1

utf-8 ×1

w3c ×1