เซิร์ฟเวอร์และเบราว์เซอร์สื่อสารกันโดยการส่งไบต์ของข้อมูลผ่านอินเทอร์เน็ต หากเซิร์ฟเวอร์ไม่ได้ระบุรูปแบบการเข้ารหัสอักขระที่ใช้เมื่อส่งไฟล์ HTML เบราว์เซอร์จะไม่ทราบว่าแต่ละไบต์แสดงถึงอักขระใด ข้อกำหนดการประกาศการเข้ารหัสอักขระ ช่วยแก้ปัญหานี้ได้
สาเหตุที่การตรวจสอบ charset ของ Lighthouse ไม่สำเร็จ
Lighthouse จะแจ้งหน้าเว็บที่ไม่ได้ระบุการเข้ารหัสอักขระ
Lighthouse จะถือว่ามีการประกาศการเข้ารหัสอักขระหากพบรายการใดรายการหนึ่งต่อไปนี้
- องค์ประกอบ
<meta charset>ใน<head>ของเอกสารที่อยู่ใน 1024 ไบต์แรกของเอกสารโดยสมบูรณ์ Content-Typeส่วนหัวการตอบกลับ HTTP ที่มีคําสั่งcharsetซึ่งตรงกับชื่อ IANA ที่ถูกต้อง- เครื่องหมายระบุลำดับไบต์ (BOM)
วิธีผ่านการตรวจสอบ charset
เพิ่มองค์ประกอบ <meta charset> ลงใน HTML
เพิ่มองค์ประกอบ <meta charset> ภายใน 1024 ไบต์แรกของเอกสาร HTML
องค์ประกอบต้องอยู่ภายใน 1024 ไบต์แรกทั้งหมด
แนวทางปฏิบัติแนะนำคือการทำให้องค์ประกอบ <meta charset> เป็นองค์ประกอบแรกใน <head> ของเอกสาร
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
เพิ่มส่วนหัวการตอบกลับ HTTP ของ Content-Type
กำหนดค่าเซิร์ฟเวอร์เพื่อเพิ่มContent-Type
ส่วนหัวการตอบกลับ HTTP ที่มีคำสั่ง charset
Content-Type: text/html; charset=UTF-8