服务器和浏览器通过互联网发送字节数据来相互通信。如果服务器在发送 HTML 文件时没有指定要使用的字符编码格式,那么浏览器就无法知道每个字节表示什么字符。字符编码声明规范可解决此问题。
Lighthouse charset
审核如何失败
Lighthouse 会标记未指定其字符编码的页面:
![失败的字符编码审核。](https://developer.chrome.google.cn/static/docs/lighthouse/best-practices/charset/image/the-failing-character-enc-65708532bd6a6.png?authuser=8&hl=nb)
如果发现以下任何情况,Lighthouse 就会认为已声明字符编码:
- 文档的
<head>
中的<meta charset>
元素,完全包含在文档的前 1024 个字节内 Content-Type
HTTP 响应标头,其中包含与有效 IANA 名称匹配的charset
指令- 字节顺序标记 (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