HTML文档中`<meta charset =“B”/>`的含义

时间:2016-09-30 14:47:54

标签: html5 encoding

我现在正在学习HTML,与编码相关的一个方面让我困惑。

想象一下,我打开我的测试编辑器,编写一些HTML代码并使用charset A (例如UTF-8或ANSI或其他东西)保存它。然后在我看来会发生以下情况:

  1. 我输入的所有字符都映射到某些数字,映射由字符集 A 指定;

  2. 数字以二进制表示形式保存在计算机内存中,作为 0 1 的序列。

  3. 在我刚刚保存的HTML文档中,有一行<meta charset="B">,其中 B 是另一个与 A 不同的字符集。

    当我尝试使用浏览器打开HTML文档时会发生什么?它会根据charset B 0 1 的序列映射到错误的字符(而不是我所说的那些字符)我写了文件)因此会显示一些垃圾?

    正如您在此问题中所看到的,我试图理解HTML文档中<meta charset="B">的真正含义。

1 个答案:

答案 0 :(得分:1)

是的,确切地说,你已经理解正确了。这正是mojibake出生的原因;有些东西试图使用错误的字符集来解释二进制序列,这会导致显示非预期/错误的字符,或者文档无法解码整个,此时具体的行为取决于尝试进行解码的应用程序。 / p>

SELECT * FROM ( SELECT CASE WHEN ACT.TotalScore > 850 THEN 'Cok Basarili' WHEN ACT.TotalScore <= 850 AND ACT.TotalScore > 700 THEN 'Basarili' ELSE 'Basarisiz' END as Basari, CASE WHEN ACT.TotalScore > 850 THEN 'rgba(123,192,67,1)' WHEN ACT.TotalScore <= 850 AND ACT.TotalScore > 700 THEN 'rgba(253,244,152,1)' ELSE 'rgba(243,119,54,1)' END as Renk OrderByField=CASE WHEN ACT.TotalScore > 850 THEN 2 WHEN ACT.TotalScore <= 850 AND ACT.TotalScore > 700 THEN 1 ELSE 3 END FROM Table ) AS A ORDER BY A.OrderByField 元素(实际上主要是<meta charset> HTTP标头)是建议性的,通知客户端(浏览器)它应该解释文档的字符集。否则客户无法知道。如果服务器/文档通知错误的字符集,结果将在某种程度上被破坏。