<!DOCTYPE html>是否会使编码定义过时?

问题描述 投票:0回答:1

这意味着UTF-8是标准的HTML5编码。如果 html DOCTYPE定义为 <!DOCTYPE html> 我是否需要定义页面的编码,就像使用

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">

PS:我应该加上原因,为什么我问。我的页面保存为UTF-8,doctype被定义为 <!DOCTYPE html>. 但我甚至收到了一个Mac用户的消息,他将会破坏德国的双音节字符,我从很久以前就知道这个问题,在unicode之前,我认为UTF-8是一个明确的解决方案。我从很久以前就知道这个问题了--我想,UTF-8是解决这个问题的最终方案。

PPS说明:有两种破损的字面。我补充两张用户提供的截图。

Broken font face 1

Broken font face 2

html unicode doctype
1个回答
3
投票

DOCTYPE html:

由于传统的原因,需要DOCTYPEs。

在HTML中,doctype是必要的。"<!DOCTYPE html>" 在所有文档的顶部找到的序言。

它的目的是为了防止浏览器切换到所谓的 "怪癖模式" 渲染文档时。

也就是 "<!DOCTYPE html>" doctype确保 浏览器会尽最大努力按照相关规范进行操作而不是使用与某些规范不兼容的不同渲染模式。


元字符集:

如果 charset 属性被设置,则 meta 元素是一个charset声明,给出了文档的字符编码。

您说的没错,HTML-5 中的默认字符编码是 UTF-8,但如果一个 HTML5 网页使用与 UTF-8 不同的字符集,就应该在标签中指定,比如。

<meta charset="ISO-8859-1">

所以如果你的网页使用UTF-8,你可以省略它,尽管我相信一个好的做法是无论如何都要保留它。但如果你使用不同的编码,你就需要它。

一般来说,规则是 指定你的字符编码

为了帮助浏览器渲染您页面上的文本,您应该始终为您的文档指定一个编码。这个编码应该出现在文档(或框架)的顶部,因为有些浏览器不会识别出现在文档深处的字符集声明。

此外,你应该确保你的Web服务器没有发送冲突的HTTP头。一个头文件,如 content-type: text/html; charset=ISO-8859-1 将覆盖您页面中的任何字符集声明。


0
投票

试着打开这个页面。http:/alohci.netstaticencoding.html。

它包含 <!DOCTYPE html> 但没有关于编码的其他信息。你看到了什么?

你看到的是这个

Characters is handled as UTF-8

还是这个

Characters is handled as WIN-1252

还是其他什么?

如果你看到的是第二张图片,就像我一样,那么这个页面被处理为WIN-1252,而不是UTF-8。但根据你所在的地方,你可能会看到一些不同的东西。

© www.soinside.com 2019 - 2024. All rights reserved.