字符集声明在 HTML 中缺失或出现过晚

服务器和浏览器通过互联网发送字节数据来相互通信。如果服务器在发送 HTML 文件时没有指定要使用的字符编码格式,那么浏览器就无法知道每个字节表示什么字符。字符编码声明规范可解决此问题。

Lighthouse charset 审核如何失败

Lighthouse 会标记未指定其字符编码的页面:

失败的字符编码审核。

如果发现以下任何情况,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

资源