html5
  • character-encoding
  • 2012-09-13 11 views 15 likes 
    15

    Một ví dụ tài liệu HTML lấy qua HTTP thiếu:HTML5 có chỉ định mã hóa ký tự mặc định cho tài liệu HTML không nếu mã hóa ký tự không được cung cấp?

    • một HTTP Content-Type tiêu đề
    • một HTML <meta charset="<character encoding>" />
    • một HTML <meta http-equiv='Content-Type' content='Type=text/html; charset=<character encoding>'>

    Đối với HTML5, là một mặc định, ví dụ UTF-8, giả định là mã hóa ký tự? Hoặc là nó hoàn toàn lên các ứng dụng đọc tài liệu HTML để chọn một mặc định?

    Trả lời

    14

    Các charset được xác định sử dụng các quy tắc:

    1. tài khoản ghi đè.
    2. Thông số "bộ ký tự" HTTP trong trường "Loại nội dung".
    3. Dấu thứ tự byte trước bất kỳ dữ liệu nào khác trong chính tài liệu HTML.
    4. Tuyên bố META có thuộc tính "ký tự".
    5. Tuyên bố META có thuộc tính "http-equiv" được đặt thành "Loại nội dung" và giá trị được đặt cho "bộ ký tự".
    6. Phân tích heuristic không xác định.

    ... và sau đó ...

    1. Đồng hóa chuỗi mã hóa ký tự đưa ra theo các Charset Bí danh Matching quy tắc quy định tại Tiêu chuẩn Unicode kỹ thuật # 22.
    2. Ghi đè một số mã hóa có vấn đề, tức là cố ý xử lý một số mã hóa như thể chúng là các mã hóa khác nhau. Ghi đè phổ biến nhất là xử lý US-ASCII và ISO-8859-1 dưới dạng Windows-1252, nhưng có một số ghi đè mã hóa khác được liệt kê trong bảng này. Theo ghi chú đặc điểm kỹ thuật, "Yêu cầu xử lý mã hóa nhất định như các mã hóa khác theo bảng trên là một sự vi phạm cố ý của đặc tả Mô hình Nhân vật W3C."

    Nhưng điều quan trọng nhất là:

    Bạn nên luôn định một mã hóa ký tự trên mọi tài liệu HTML, hoặc điều xấu sẽ xảy ra. Bạn có thể làm điều đó một cách khó khăn (tiêu đề loại nội dung HTTP), cách dễ dàng (khai báo <meta http-equiv>) hoặc cách mới (thuộc tính <meta charset>), nhưng hãy làm điều đó. Trang web cảm ơn bạn.

    Nguồn:

    +0

    Cảm ơn, tôi hiểu rằng một mã hóa ký tự nên luôn luôn được xác định.Tôi đang xác thực tài liệu mà tôi không có quyền kiểm soát và cần phải biết liệu tôi có nên hoàn nguyên về chế độ mã hóa mặc định hay không nếu không có quy tắc nào được chỉ định. –

    +1

    Cân nhắc sử dụng cùng một logic mà trình xác thực W3 sử dụng. Đó là mã nguồn mở để bạn có thể nhìn vào mã của nó để xem nó làm gì. – ThiefMaster

    +1

    Điều này không thực sự trả lời câu hỏi tại sao bộ ký tự là cần thiết, và những gì thiết lập mặc định là như vậy là xấu. Ngoài ra, đây vẫn là câu trả lời? Đã 2 năm kể từ khi được viết và các trình duyệt đã được nâng cấp rất nhiều kể từ đó. IE đã không, nhưng các phiên bản cũ đã giảm đi. – trysis

     Các vấn đề liên quan

    • Không có vấn đề liên quan^_^