เซิร์ฟเวอร์และเบราว์เซอร์จะสื่อสารกันโดยส่งข้อมูลจำนวนไบต์ผ่านอินเทอร์เน็ต หากเซิร์ฟเวอร์ไม่ระบุรูปแบบการเข้ารหัสอักขระที่ใช้เมื่อส่งไฟล์ HTML เบราว์เซอร์จะไม่รู้ว่าแต่ละไบต์แทนอักขระใด ข้อกำหนดในการการประกาศการเข้ารหัสอักขระช่วยแก้ปัญหานี้ได้
วิธีที่การตรวจสอบ Lighthouse charset
ล้มเหลว
Lighthouse จะแจ้งหน้าที่ระบุการเข้ารหัสอักขระดังนี้
![การตรวจสอบการเข้ารหัสอักขระที่ล้มเหลว](https://developer.chrome.com/static/docs/lighthouse/best-practices/charset/image/the-failing-character-enc-65708532bd6a6.png?authuser=6&hl=th)
Lighthouse จะถือว่าการประกาศการเข้ารหัสอักขระนั้นเมื่อพบสิ่งต่อไปนี้
- องค์ประกอบ
<meta charset>
ใน<head>
ของเอกสารที่มีอยู่ใน 1024 ไบต์แรกของเอกสาร - ส่วนหัวการตอบกลับ HTTP
Content-Type
ที่มีคำสั่งcharset
ที่ตรงกับชื่อ IANA ที่ถูกต้อง - เครื่องหมายลำดับไบต์ (BOM)
วิธีผ่านการตรวจสอบ charset
เพิ่มองค์ประกอบ <meta charset>
ลงใน HTML
เพิ่มองค์ประกอบ <meta charset>
ภายใน 1024 ไบต์แรกของเอกสาร HTML
องค์ประกอบต้องอยู่ภายใน 1,024 ไบต์แรกทั้งหมด
แนวทางปฏิบัติแนะนำคือการกำหนดองค์ประกอบ <meta charset>
เป็นองค์ประกอบแรกใน <head>
ของเอกสาร
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
เพิ่มส่วนหัวการตอบกลับ HTTP Content-Type
กำหนดค่าเซิร์ฟเวอร์เพื่อเพิ่มส่วนหัวการตอบกลับ HTTP Content-Type
ที่มีคำสั่ง charset
Content-Type: text/html; charset=UTF-8