服务器和浏览器通过互联网发送字节数据来相互通信。如果服务器在发送 HTML 文件时未指定所用的字符编码格式,浏览器将不知道每个字节代表什么字符。字符编码声明规范解决了此问题。
Lighthouse charset 审核失败的原因
Lighthouse 会标记未指定字符编码的网页:
如果 Lighthouse 发现以下任一情况,则认为已声明字符编码:
- 文档的
<head>中完全包含在文档的前 1024 个字节中的<meta charset>元素 - 包含
charset指令的Content-TypeHTTP 响应标头,该指令与有效的 IANA 名称相匹配 - 字节顺序标记 (BOM)
如何通过 charset 审核
向 HTML 添加 <meta charset> 元素
在 HTML 文档的前 1024 个字节内添加 <meta charset> 元素。
该元素必须完全包含在前 1024 个字节内。最佳实践是将 <meta charset> 元素设为文档 <head> 中的第一个元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
添加 Content-Type HTTP 响应标头
将服务器配置为添加包含 charset 指令的 Content-Type HTTP 响应标头。
Content-Type: text/html; charset=UTF-8