2011-08-18 48 views
8

Đọc số Wikipedia article on UTF-8, tôi đã tự hỏi về cụm từ overlong. Thuật ngữ này được sử dụng nhiều lần nhưng bài viết không cung cấp định nghĩa hoặc tham chiếu cho ý nghĩa của nó.Biểu mẫu/mã hóa quá dài là gì?

Tôi muốn biết liệu ai đó có thể giải thích thuật ngữ và mục đích của nó hay không.

Trả lời

11

Đó là mã hóa của một điểm mã cần nhiều đơn vị mã hơn mức cần thiết.

Ví dụ: U + 0020 được biểu thị bằng UTF-8 theo byte đơn 0x20. Nếu bạn giải mã hai byte 0xc0 0xa0 theo kiểu bình thường, bạn vẫn sẽ kết thúc ở U + 0020, nhưng đó là biểu diễn không hợp lệ.

Unicode Corrigendum #1 có thêm thông tin, đặc biệt là quanh bảng 3.1B.

2

UTF-8 về mặt lý thuyết cho phép biểu diễn các ký tự khác nhau cũng có ký hiệu ngắn hơn. Ví dụ, bạn có thể mã hóa một ký tự ASCII thành hai byte bằng cách thiết lập các MSB thành 0. Đặc tả UTF-8 đã cấm rõ ràng điều này.

+0

Chơi chữ khủng khiếp. Bỏ phiếu xuống. – Computer

+0

@Computer: o.O tôi đã bỏ lỡ những trò chơi chữ nào? – Joey

+0

Bạn nói forbits! – Computer

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