Máy chủ và trình duyệt giao tiếp với nhau bằng cách gửi các byte dữ liệu qua Internet. Nếu máy chủ không chỉ định định dạng mã hoá ký tự mà máy chủ đang sử dụng khi gửi tệp HTML, thì trình duyệt sẽ không biết mỗi byte đại diện cho ký tự nào. Thông số kỹ thuật về khai báo mã hoá ký tự giải quyết vấn đề này.
Cách kiểm tra charset của Lighthouse không thành công
Lighthouse gắn cờ các trang không chỉ định mã hoá ký tự:
Lighthouse coi mã hoá ký tự là đã được khai báo nếu tìm thấy bất kỳ thông tin nào sau đây:
- Phần tử
<meta charset>trong<head>của tài liệu được chứa hoàn toàn trong 1024 byte đầu tiên của tài liệu - Tiêu đề phản hồi HTTP
Content-Typecó chỉ thịcharsetkhớp với tên IANA hợp lệ - Dấu thứ tự byte (BOM)
Cách vượt qua bài kiểm tra charset
Thêm phần tử <meta charset> vào HTML
Thêm phần tử <meta charset> trong 1024 byte đầu tiên của tài liệu HTML.
Phần tử này phải được chứa hoàn toàn trong 1024 byte đầu tiên.
Phương pháp hay nhất là đặt phần tử <meta charset> làm phần tử đầu tiên trong
<head> của tài liệu.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
Thêm tiêu đề phản hồi HTTP Content-Type
Định cấu hình máy chủ để thêm tiêu đề phản hồi Content-Type HTTP có chứa chỉ thị charset.
Content-Type: text/html; charset=UTF-8