我现在正在学习HTML,与编码相关的一个方面让我困惑。
想象一下,我打开我的测试编辑器,编写一些HTML代码并使用charset A (例如UTF-8或ANSI或其他东西)保存它。然后在我看来会发生以下情况:
我输入的所有字符都映射到某些数字,映射由字符集 A 指定;
数字以二进制表示形式保存在计算机内存中,作为 0 和 1 的序列。
在我刚刚保存的HTML文档中,有一行<meta charset="B">
,其中 B 是另一个与 A 不同的字符集。
当我尝试使用浏览器打开HTML文档时会发生什么?它会根据charset B 将 0 和 1 的序列映射到错误的字符(而不是我所说的那些字符)我写了文件)因此会显示一些垃圾?
正如您在此问题中所看到的,我试图理解HTML文档中<meta charset="B">
的真正含义。
答案 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标头)是建议性的,通知客户端(浏览器)它应该解释文档的字符集。否则客户无法知道。如果服务器/文档通知错误的字符集,结果将在某种程度上被破坏。