Web 文档的编码与文档中明确使用的编码之间的混淆
confusion between encoding of a web document and the encoding explicitly used in the document
我知道这是一个非常愚蠢的问题,但不幸的是我无法自己解决。在谈到编码和字符集主题时,我总是很困惑。我会解释我从主题中理解的内容,然后我会提出问题。
当你想保存文件时,你会以特定的字符编码进行保存,这意味着文件的每个字符都根据其编码适合内存。对吗?
例如,如果 html
文件具有 utf-16
编码,这是否意味着浏览器使用 utf-16
编码来解码给定文件以读取 源代码?
在 meta
元素中使用 charset
属性是否定义了语言 (html
) 应该使用什么编码才能在浏览器中正确显示字符?
和html
自己加了一个"html character reference"和unicode字符码无关?
编辑 1:
所以在@snakecharmerb 之后我意识到了我的一些错误:
1- 我不知道没有关于 [text] 文件编码的元数据。
2- charset
属性告诉浏览器文件的编码,因为此信息无法从文件本身构想出来(某种程度上 它可以。请参阅 this 答案)
3- 一个文本文件只能有一种编码,如果一个文件使用 utf-8 编码,则意味着它遵循 Unicode 字符集 (UCS)。您不能将 utf-8 编码与其他字符集一起使用,而如今 utf-8 和 unicode 这两个术语几乎可以互换。
当你想保存文件时,你会以特定的字符编码进行保存,这意味着文件的每个字符都根据其编码适合内存。对吗?
- 是的,每个字符都被编码为特定的数值;解码将数值转换回字符
例如,如果 html 文件具有 utf-16 编码,这是否意味着浏览器使用 utf-16 编码解码给定文件以读取源代码?
浏览器将尝试使用来自 Web 服务器的响应 header 中 Content-Type
header 中提供的编码对页面进行解码;如果缺少 header 或未指定编码,将使用页面中的 meta charset
标记。如果两者都未指定,浏览器可能会尝试从文档内容推断编码,最后回退到 latin-1
w3c recommends 总是设置 meta 标签,只设置 Content-Type header 如果你确定它是正确的,并且总是使用 UTF- 8 作为你的编码。
在 meta 元素中使用 charset 属性是否定义了语言 (html) 应该使用什么编码才能在浏览器中正确显示字符?
- 它告诉浏览器应该使用哪种编码来解码页面
和html自己加了一个"html character reference"和unicode字符码无关?
- html 实体(如
'
或 '
)独立于任何特定的编码,但它们的组成字符本身将被编码和解码
我知道这是一个非常愚蠢的问题,但不幸的是我无法自己解决。在谈到编码和字符集主题时,我总是很困惑。我会解释我从主题中理解的内容,然后我会提出问题。
当你想保存文件时,你会以特定的字符编码进行保存,这意味着文件的每个字符都根据其编码适合内存。对吗?
例如,如果 html
文件具有 utf-16
编码,这是否意味着浏览器使用 utf-16
编码来解码给定文件以读取 源代码?
在 meta
元素中使用 charset
属性是否定义了语言 (html
) 应该使用什么编码才能在浏览器中正确显示字符?
和html
自己加了一个"html character reference"和unicode字符码无关?
编辑 1:
所以在@snakecharmerb 之后我意识到了我的一些错误:
1- 我不知道没有关于 [text] 文件编码的元数据。
2- charset
属性告诉浏览器文件的编码,因为此信息无法从文件本身构想出来(某种程度上 它可以。请参阅 this 答案)
3- 一个文本文件只能有一种编码,如果一个文件使用 utf-8 编码,则意味着它遵循 Unicode 字符集 (UCS)。您不能将 utf-8 编码与其他字符集一起使用,而如今 utf-8 和 unicode 这两个术语几乎可以互换。
当你想保存文件时,你会以特定的字符编码进行保存,这意味着文件的每个字符都根据其编码适合内存。对吗?
- 是的,每个字符都被编码为特定的数值;解码将数值转换回字符
例如,如果 html 文件具有 utf-16 编码,这是否意味着浏览器使用 utf-16 编码解码给定文件以读取源代码?
浏览器将尝试使用来自 Web 服务器的响应 header 中
Content-Type
header 中提供的编码对页面进行解码;如果缺少 header 或未指定编码,将使用页面中的meta charset
标记。如果两者都未指定,浏览器可能会尝试从文档内容推断编码,最后回退到 latin-1w3c recommends 总是设置 meta 标签,只设置 Content-Type header 如果你确定它是正确的,并且总是使用 UTF- 8 作为你的编码。
在 meta 元素中使用 charset 属性是否定义了语言 (html) 应该使用什么编码才能在浏览器中正确显示字符?
- 它告诉浏览器应该使用哪种编码来解码页面
和html自己加了一个"html character reference"和unicode字符码无关?
- html 实体(如
'
或'
)独立于任何特定的编码,但它们的组成字符本身将被编码和解码