Bug "The character encoding of the HTML document was not declared...."

Bữa nay check lỗi HTML và JavaScript của một trang web thấy một lỗi khá phỏ biến là "The character encoding of the HTML document was not declared." thấy cũng hay nên note lại cho các bạn tham khảo.

Toàn bộ nội dung báo lỗi khi xem log sẽ là "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." Bạn có thể hiểu có các ký tự, nội dung của trang web này không thuộc bảng mã US-ASCII.

Nguyên nhân gây ra lỗi này là do khi bạn tạo file HTML bạn lưu nó dưới dạng mã Endoing là "ANSI" hoặc một bảng mã nào khác nhưng nội dụng lại chứa các ký tự nằm ngoài các bảng mã của tập tin HTML đã lưu.

Dựa trên nguyên nhân gây lỗi ta có thể dễ dàng đoán được cách xử lý lẹ nhất là mở lại tập đó và save hoặc convert nó về bảng mã "UTF-8" hoặc bảng mã có ký tự có tồn tại ký tự trong tập tin là được.

Tuy nhiên cũng chả ai làm vậy chi cho phiền phức ta chỉ việc thêm hài dòng meta đơn giản bên dưới là được. Bạn có thể thay đổi thông số "utf-8" cho phù hợp với các ký tự trong website của mình, ở đây tôi lấy "utf-8" vì nó là chuẩn phổ biến nhất trên thế giới thường sử dụng.
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
    <meta content="utf-8" http-equiv="encoding">   

Để dễ hiểu bạn hãy xem một đoạn mã trang HTML ngắn bên dưới, ở đây tôi sử dụng Notepad để lưu tập tin với mã encoding là "ANSI".

 <!DOCTYPE html>
<html>
<head>
    <title>Page Title</title>
    <meta content='1158955169428284932' itemprop='blogId'/>
    <meta content='2625062333555326287' itemprop='postId'/> 
    <meta property="video" content="http://video.com/video33353.mp4" />

</head>

<body>
Chào mừng bạn tới với website của tôi VNLIVES.NET, ngôn ngữ của webiste là tiếng việt.
</body>

</html>

Vày khi chạy trên trình duyệt web, bạn kiểm tra log thì sẽ bắt gặp ngay thông báo "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol."

Now, you chỉ cẩn thêm hài dòng meta trên, chạy lại và kiểm tra lại thì bạn sẽ không thấy dòng thông báo trên được hiển thị ra nữa.

 <!DOCTYPE html>
<html>
<head>
    <title>Page Title</title>
    <meta content='1158955169428284932' itemprop='blogId'/>
    <meta content='2625062333555326287' itemprop='postId'/> 
    <meta property="video" content="http://video.com/video33353.mp4" />
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
    <meta content="utf-8" http-equiv="encoding">   
</head>

<body>
Chào mừng bạn tới với website của tôi VNLIVES.NET, ngôn ngữ của webiste là tiếng việt.
</body>

</html>

Mọi thắc mặc hay góp ý cho bài viết xin vui lòng comment tại đây ^^! Thank all.



No comments:

Post a Comment