必须设 lang="zh-TW" 且 meta charset="UTF-8";因编码(UTF-8)与语言(zh-TW)职责不同,Big5/GBK 已被现代浏览器和部署平台弃用,且不支持 Unicode 全集;lang 必须置于 html 标签上才生效,影响字体回退、读屏与 SEO。

lang 属性必须设为 zh-TW,meta charset 仍用 UTF-8 —— 编码和语言是两件事,不能混为一谈。
为什么 meta charset="UTF-8" 不能换成 Big5 或 GBK
现代浏览器(Chrome、Firefox、Safari、Edge)已基本不支持 Big5 等旧编码的自动识别,且 HTML5 规范明确要求使用 UTF-8 作为默认编码。若强行写 charset=Big5:
- HTML 文件实际保存为 UTF-8 时,页面必然乱码(浏览器按 Big5 解码 UTF-8 字节流)
- 即使文件真用 Big5 保存,Vite/Webpack/Node.js dev server 默认发
Content-Type: text/html; charset=UTF-8,会覆盖 meta 导致失效 - GitHub Pages、Vercel、Netlify 等平台强制返回 UTF-8 响应头,
charset=Big5完全被忽略 -
Big5不支持简体字、emoji、大部分 Unicode 符号,协作与维护成本极高
lang="zh-TW" 必须加在 <html> 标签上
只写 <p lang="zh-TW">繁體中文</p> 没用,语义不成立。正确做法是:
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>繁體網頁</title>
</head>
<body>
<p>這是一段繁體中文</p>
</body>
</html>
注意:
立即学习“前端免费学习笔记(深入)”;
-
zh-TW是台湾地区繁体中文的标准值;zh-HK用于香港(用字习惯不同,如「裏」「衞」) - 不要写
zh或zh-tw(大小写敏感,小写无效) -
lang影响字体回退顺序、屏幕阅读器发音、搜索引擎语言识别,不是“可有可无”的装饰
繁体内容显示异常?先查这三处
常见现象:文字显示成方块、问号、或错乱成简体字形 —— 大概率不是编码问题,而是:
- VS Code 或其他编辑器保存文件时选了
UTF-8 with BOM:BOM(EF BB BF)会干扰<meta charset>解析,尤其在旧版 IE 或某些 Node.js 模板引擎中;应选纯UTF-8(无 BOM) - HTML 文件本身是 GBK 编码,但写了
<meta charset="UTF-8">:用xxd -l 4 yourfile.html查看开头字节,若为c8 e7类似值,说明是 GBK,需重存为 UTF-8 - 服务器响应头硬编码了
charset=ISO-8859-1(如某些 Nginx 配置漏配charset utf-8;):打开 DevTools → Network → 刷新 → 点 HTML 请求 → 查Response Headers中Content-Type是否含charset=utf-8
真正需要区分繁简的,是字形与用词,不是编码。用 UTF-8 存所有中文,靠 lang 和 CSS font-family 控制呈现,才是稳定可维护的做法。



















