越南语的正确html语言代码是vi,而非vn或vie;必须使用iso 639-1两位小写字母代码,局部内容需用lang="vi"标注,地区变体vi-vn不推荐用于lang属性。

越南语的正确语言代码是 vi,不是 vn 或 vie
HTML 的 lang 属性必须使用 ISO 639-1 两位小写字母代码。越南语的标准代码是 vi(源自 *Vietnamese*),vn 是国家代码(ISO 3166-1),vie 是 ISO 639-2 三位代码——二者都不符合 HTML 规范。
错误写法会导致屏幕阅读器识别异常、搜索引擎语言判断偏差,甚至影响某些浏览器的字体回退逻辑。
-
→ 错误:被当作自定义或未知语言处理 -
→ 错误:HTML5 明确要求优先使用两位码 -
→ 正确:唯一推荐写法
需要设置 lang 的位置不止 标签
主页面语言用 即可覆盖全局,但遇到多语言混合内容时,必须局部覆盖:
- 一段越南语文本嵌在中文页面中:
<span lang="vi">Xin chào</span> - 引用越南语网页的
<blockquote></blockquote>:<blockquote lang="vi">...</blockquote> - 表单输入框明确为越南语内容:
<input type="text" lang="vi">(辅助输入法切换)
不加局部 lang 可能导致拼写检查失效,或语音合成引擎用错发音规则。
地区变体(如越南南部/北部)通常不需要额外标注
除非你有明确需求区分地域方言(例如专为胡志明市用户优化语音提示),否则只需 vi。HTML 不鼓励滥用地区子标签,比如:
-
vi-VN虽然语法合法(language-region格式),但实际收益极低 - 主流屏幕阅读器、搜索引擎、浏览器均不依赖
-VN做行为调整 - 反而增加维护成本,且可能触发某些老旧工具的解析异常
只有当你提供多地区独立版本(如 /vi-vn/ 和 /vi-hn/ 路由),才考虑在 hreflang 中使用 vi-VN,而非 lang 属性。
验证是否生效:别只看源码,要查渲染结果
写完 lang="vi" 后,打开 DevTools → Elements 面板,确认该属性确实存在于最终渲染的 节点上。常见干扰项:
- 服务端模板未正确插入变量,导致输出为
(字面量未替换) - 前端框架(如 React)动态修改了
lang,但初始 HTML 仍是lang="en",影响首屏可访问性 - CDN 或代理层缓存了旧版 HTML,实际响应头里还是老的
lang
最可靠的验证方式:右键 → “查看页面源代码”,直接搜索 lang="vi" —— 必须出现在原始 HTML 字节流里,而不是 JS 注入后才出现。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











