伺服器和瀏覽器會透過網際網路傳送資料位元組,彼此進行通訊。如果伺服器在傳送 HTML 檔案時,未指定使用的字元編碼格式,瀏覽器就無法判斷每個位元組代表的字元。字元編碼宣告規格可解決這個問題。
Lighthouse charset 稽核失敗的原因
Lighthouse 會標記未指定字元編碼的網頁:
如果 Lighthouse 發現下列任一項目,就會將字元編碼視為已宣告:
- 文件
<head>中的<meta charset>元素完全包含在文件的前 1024 個位元組中 - 含有
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