HTML 字符集(Character Encoding)决定网页如何把 二进制数据解释成文字。
例如:
现代网页 全部使用 UTF-8,因为它支持所有语言。
这是一个字符集,旨在包含世界上所有的字符系统。它为每个字符分配一个唯一的编号(码点),与平台、程序、语言无关。
但是,Unicode 本身不规定如何存储。这时就需要具体的编码方案。
这是 Unicode 的一种实现方式(编码方案),也是目前 Web 标准的绝对首选。
特点:
HTML5:
<head>
<!-- 如果不写,有些中文页面会出现 乱码。 -->
<meta charset="UTF-8" />
</head>
HTML4:
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
</head>
charset 必须放在 <head> 最前面
浏览器是 自上而下解析的,如果 charset 写下面,浏览器在解析前半段时可能已经用错编码方式 → 出现乱码。
浏览器采用以下优先级(从高到低):
Content-Type: text/html; charset=UTF-8
<meta charset>| 编码 | 语言 | 描述 |
|---|---|---|
| UTF-8(推荐) | 全语言 | 国际标准,网页默认编码 |
| GB2312 | 简体中文 | 较老 |
| GBK | 简体中文 | GB2312 扩展版 |
| BIG5 |
| 繁体中文(台湾) |
| Shift_JIS | 日文 | 老编码,少用 |
| ISO-8859-1 | 西文 | 曾是 HTML4 默认编码 |
现代网页 不要用 GBK / BIG5 / Shift_JIS,否则国际化和表情符号会乱码。
<head> 最上面Chrome → 右键检查 → Network → 点击 HTML → Headers
找到:
Content-Type: text/html; charset=utf-8
如果不是 UTF-8,容易出现乱码。
<meta charset> 声明 是否正确且位于 <head> 顶部?