Bỏ qua menu, tới nội dung

Code point là gì? Số hiệu Unicode của từng mã trong chữ

Code point là số hiệu mà Unicode gán cho một mã, viết theo dạng U+ kèm số hexa: chữ “ệ” dựng sẵn mang số U+1EC7, chữ “a” mang số U+0061. Bảng mã Unicode trải từ U+0000 đến U+10FFFF, đủ chỗ cho chữ Việt, chữ Hán, dấu thanh rời và emoji.

Một ký tự nhìn thấy gồm mấy code point

Số mã phụ thuộc kiểu gõ và loại ký tự, trong khi số ký tự người đọc thấy vẫn giữ nguyên.

ChuỗiCode pointGraphemeByte UTF-8
ệ dựng sẵn (U+1EC7)113
ệ tổ hợp (e + dấu nặng + dấu mũ)315
Một emoji mặt cười114

Dạng tổ hợp ở dòng hai là NFD; đưa về dựng sẵn thì ba mã gom lại còn một. Đây là lý do mọi công cụ chuẩn hoá trước rồi mới đếm.

Nơi nào đếm theo code point

X là nền tảng phổ biến nhất tính độ dài bài đăng theo dải số hiệu chứ không theo ký tự nhìn thấy.

Theo tài liệu counting characters của X, mã nằm trong dải U+0000–U+10FF tính 1, mã ngoài dải tính 2, còn mỗi đường link tính tròn 23. Chữ Việt dựng sẵn mang dấu nặng, hỏi, ngã nằm ở dải U+1EA0–U+1EF9 nên bị tính 2; “Việt Nam” hết 9 đơn vị trong khi mắt đếm được 8 ký tự. Người chạy quảng cáo trên X hay hụt vài ký tự vì chuyện này, và tôi chưa thấy ô soạn thảo nào cảnh báo trước.

Công cụ xem code point

Ba công cụ và một trang thuật ngữ sau giúp đối chiếu các đơn vị với nhau.

  • Đếm byte UTF-8 liệt kê grapheme, code point, đơn vị UTF-16 và byte của cùng một đoạn.
  • Đếm ký tự X áp dụng đúng luật trọng số vừa nói.
  • Đếm emoji cho thấy một emoji ghép ngốn nhiều mã tới mức nào.
  • Ký tự giải thích đơn vị mà site hiển thị mặc định.