字元集宣告遺失或在 HTML 中太晚出現

伺服器和瀏覽器會透過網際網路傳送資料位元組,彼此進行通訊。如果伺服器在傳送 HTML 檔案時,未指定使用的字元編碼格式,瀏覽器就無法判斷每個位元組代表的字元。字元編碼宣告規格可解決這個問題。

Lighthouse charset 稽核失敗的原因

Lighthouse 會標記未指定字元編碼的網頁:

字元編碼稽核失敗。

如果 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 回應標頭

設定伺服器,加入包含 charset 指令的 Content-Type HTTP 回應標頭。

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

資源