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

服务器和浏览器通过在 。如果服务器未指定具体字符编码格式 使用 ,那么浏览器就无法知道每个字节代表的是什么字符。 字符编码声明 可以解决这个问题。

Lighthouse charset 审核失败的原因

灯塔 对未指定字符编码的网页进行标记:

失败字符编码审核。

如果 Lighthouse 发现以下任一情况,则会认为该字符编码已声明:

  • 文档的 <head> 中完全存在一个 <meta charset> 元素, 包含在文档的前 1024 个字节中
  • 包含 charset 指令的 Content-Type HTTP 响应标头,该指令与 有效的 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 响应标头

配置服务器以添加 Content-Type 包含 charset 指令的 HTTP 响应标头。

Content-Type: text/html; charset=UTF-8

资源