Chữ số trong Unicode: Từ Hindu-Arabic đến các hệ thống số cổ đại

Chữ số (numeral) trong Unicode là bất kỳ ký tự nào đại diện cho một giá trị số. Mặc dù hầu hết thế giới quen thuộc với các chữ số 0–9, Unicode 17.0 (2025) bao gồm 22 bộ chữ số thập phân khác nhau từ các hệ thống chữ viết trên toàn cầu, cùng hàng trăm biến thể typographic và hệ thống số cổ đại.

1. Thuộc tính Numeric Type trong Unicode

Unicode phân loại mọi ký tự số theo Numeric Type property, gồm 4 giá trị:

Loại Có giá trị số Ví dụ Ghi chú
Không phải số Không A, X, !, Д, μ Numeric Value = NaN
Decimal De 0–9, ६ (Devanagari 6), ೬ (Kannada 6), 𝟨 (sans-serif) Chữ số thập phân thuần, trùng General Category = Nd
Digit Di ¹ (superscript), ①, ⒈ Thập phân nhưng trong ngữ cảnh typographic
Numeric Nu ¾, ௰ (Tamil 10), Ⅹ (La Mã), 六 (Hán) Có giá trị số nhưng không phải hệ thập phân

Nguồn: Unicode Standard, Section 4.6: Numeric Value; Unicode Character Database 2025-06-30.

2. 22 Bộ chữ số thập phân (Decimal)

Hệ Hindu-Arabic là nền tảng, nhưng Unicode encode lại chữ số 0–9 cho 22 hệ chữ viết độc lập. Dưới đây là một số bộ tiêu biểu:

Script 0 1 2 3 4 5 6 7 8 9
Western Arabic (ASCII) 0 1 2 3 4 5 6 7 8 9
Eastern Arabic ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩
Devanagari
Thai
Khmer
Tibetan

Lưu ý thực tế: Dù cùng giá trị số, Unicode không ánh xạ tự động giữa các bộ. Dev cần dùng Numeric_Value property khi xử lý text đa ngôn ngữ trong Python (unicodedata.numeric()) hay JavaScript (Intl.NumberFormat).

3. Chữ số La Mã (Roman Numerals)

Số La Mã có nguồn gốc từ Rome cổ đại, kế thừa từ chữ số Etruscan. Unicode dành riêng block U+2160–U+2188 cho Roman numerals để tương thích với văn bản châu Á dọc (vertical text).

  0 1 2 3 4 5 6 7 8 9 A B C D E F
Giá trị 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1000
U+216x (hoa)
U+217x (thường)

Ứng dụng hiện đại: Số La Mã trong Unicode được dùng phổ biến trong đánh số trang lời tựa sách (i, ii, iii), phân tích hợp âm nhạc (I, IV, V), đánh số phim sequel (Fast & Furious X), và sự kiện thể thao như Olympic Games hay Super Bowl.

Chữ số trong Unicode

Lưu ý: Unicode khuyến cáo ưu tiên dùng ký tự Latin thông thường (I, V, X, L, C, D, M) thay vì codepoint chuyên biệt U+2160–U+217F cho mục đích thông thường.

4. Biến thể Typographic (Rich Text Numerals)

Đây là phần liên quan trực tiếp đến typography và UX design. Unicode cung cấp nhiều biến thể hình thức cho chữ số Arab:

Loại Ví dụ Block Unicode Ứng dụng
Superscript ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ U+2070, U+00B9, U+00B2, U+00B3, U+2074–U+2079 Số mũ, chú thích
Subscript ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ U+2080–U+2089 Công thức hóa học H₂O, CO₂
Circled ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ U+2460–U+2473 Danh sách có thứ tự
Fullwidth 0 1 2 3 4 5 6 7 8 9 U+FF10–U+FF19 Legacy CJK vertical text
Bold sans-serif 𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗 U+1D7CE–U+1D7D7 Toán học, thiết kế đồ họa
Monospace 𝟶 𝟷 𝟸 𝟹 𝟺 𝟻 𝟼 𝟽 𝟾 𝟿 U+1D7F6–U+1D7FF Code display, terminal
Vulgar fractions ¼ ½ ¾ ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ U+00BC–U+00BE, U+2150–U+215E Công thức nấu ăn, tài liệu kỹ thuật

Ứng dụng UX thực tế: Khi thiết kế bảng giá hoặc bảng số liệu, nên dùng tabular figures (monospace numerals) thay vì proportional figures để các chữ số thẳng hàng theo cột — nguyên tắc này được dạy trong Textual Elements of Design (University of Colorado Boulder).

5. Chữ số Suzhou (花码 / Huāmǎ)

Đây là hệ thống chữ số ít người biết nhưng thú vị, bắt nguồn từ hệ rod numeral (que tính) Trung Quốc cổ đại. Chữ số Suzhou được dùng để hiển thị giá cả tại các chợ truyền thống Trung Quốc và hóa đơn viết tay.

Các ký tự nằm trong block CJK Symbols and Punctuation tại U+3021–U+3029. Đây cũng là ví dụ điển hình về lỗi đặt tên trong Unicode: phiên bản 3.0 đặt nhầm là "Hangzhou style numerals", đến Unicode 4.0 mới đính chính thành "Suzhou" — nhưng tên ký tự không thể thay đổi theo Unicode Stability Policy.

Giá trị 1 2 3 4 5 6 7 8 9
Ký tự Suzhou
Code Point U+3021 U+3022 U+3023 U+3024 U+3025 U+3026 U+3027 U+3028 U+3029

6. Chữ số Hy Lạp Cổ đại (Ancient Greek Numerals)

Unicode hỗ trợ hệ Attic numerals (còn gọi là Herodianic hay Acrophonic numerals) trong Supplementary Multilingual Plane tại U+10140–U+1018F. Hệ này được dùng từ thế kỷ 7 TCN, mỗi ký hiệu lấy từ chữ cái đầu của từ tương ứng:

Giá trị thập phân Ký hiệu Từ Hy Lạp gốc
1 Ι ἴος (ios)
5 Π πέντε (pente)
10 Δ δέκα (deka)
100 Η ἑκατόν (hekaton)
1.000 Χ χίλιοι (khilioi)
10.000 Μ μύριοι (myrioi)

7. Chữ số đếm (Counting Rod Numerals)

Hệ counting rod là hệ thống toán học cổ đại Trung Quốc, được Unicode 5.0 chuẩn hóa trong Supplementary Multilingual Plane tại U+1D360–U+1D371. Có 9 chữ số "ngang" (dùng cho lũy thừa lẻ của 10) và 9 chữ số "dọc" (dùng cho lũy thừa chẵn):

  1 2 3 4 5 6 7 8 9
Ngang 𝍡 𝍢 𝍣 𝍤 𝍥 𝍦 𝍧 𝍨 𝍩
Dọc 𝍱 𝍲 𝍳 𝍴 𝍵 𝍶 𝍷 𝍸 𝍹

Lưu ý: Do mới được thêm vào SMP (ngoài BMP), nhiều font phổ biến chưa hỗ trợ đầy đủ các ký tự này.

8. Chữ số thập lục phân (Hexadecimal)

Hex không dùng ký tự riêng — Unicode tận dụng lại chữ cái Latin A–F. Các ký tự được đánh dấu property Hex_Digit=Yes:

Tập ký tự Ví dụ ASCII Hex?
Basic Latin hoa 0123456789ABCDEF
Basic Latin thường 0123456789abcdef
Fullwidth hoa 0123456789ABCDEF
Fullwidth thường 0123456789abcdef

9. Ứng dụng thực tế trong lập trình

Khi xử lý text đa ngôn ngữ hiện đại, các dev cần biết:

  • Python: unicodedata.numeric('६') trả về 6.0; unicodedata.category('६') trả về 'Nd' (Decimal digit)
  • JavaScript / Regex: \d chỉ match ASCII 0–9; dùng \p{Nd} với flag /u để match tất cả 22 bộ chữ số thập phân
  • NLP / Tokenization: Cần chuẩn hóa về Western Arabic trước khi train model để tránh phân mảnh vocabulary
  • Font fallback: Chữ số SMP (Counting Rod, Ancient Greek) cần font chuyên biệt như Noto Serif hoặc Symbola; thiếu font sẽ hiển thị hộp vuông □

10. Ứng dụng trong đời sống Việt Nam

Người Việt tiếp xúc với chữ số La Mã từ rất sớm — chương trình toán lớp 2 đã có bài học về I, V, X, L. Trong thực tế, chúng xuất hiện ở những ngữ cảnh quen thuộc hơn người ta nghĩ:

Văn bản pháp lý: Các chương, điều trong Bộ luật, Hiến pháp thường dùng chữ số La Mã để đánh mục lớn — ví dụ "Chương I", "Phần II" — phân biệt với số thứ tự điều khoản dùng chữ số thường.


Bài viết thuộc Chuyên đề Nghiên Cứu của KiTuHAY. Dữ liệu thuộc sở hữu KiTuHay.Com, vui lòng trích dẫn nguồn nếu tái sử dụng.

Tác giả: Lê Thanh Sang — Kỹ thuật viên & Nhà nghiên cứu Unicode, Công ty TNHH KiTuHAY.

Tham khảo: Unicode Standard 17.0, Section 4.6 · Unicode Character Database · Wikipedia — Numerals in Unicode · Coursera / University of Colorado Boulder, Textual Elements of Design, Certificate EG49LITMPHN0, 2026.

logo KiTuHay

KiTuHay.Com là website Kí tự đặc biệt đã phát triển đến phiên bản: v1.2.64, chuyên tạo tên nhân vật, biệt danh bằng các kí hiệu như Kí tự Quả Táo, Mặt quỷ, Khoảng trống. Tạo kí tự Free Fire, PUBG, Liên Quân, TikTok, Zalo, Facebook, Instagram. Cập nhật mới nhất những kí tự đẹp tại KiTuHay.Com.

Giới thiệu | Câu chuyện | Hướng dẫn | Chính sách | Kiểm duyệt | Thanh toán | Cookies | Chính sách AI | Cảnh báo giả mạo | Liên hệ

"KiTuHay.com là công cụ tra cứu - tạo tên kí tự Unicode, không cung cấp dịch vụ trò chơi điện tử trực tuyến dưới bất kỳ hình thức nào."

Tải về app KiTuHAY Tải app Android trên Google Play Tải app iOS trên App Store

Nỗ lực vì một cộng đồng Kí Tự HAY hữu ích hơn

Email: hotro@kituhay.com

Phone: 0362.19.39.89

Thời gian làm việc: 8:00 - 21:00.

Văn phòng chính: Số A4-57, đường BT9, Dự án Lavila Green City Tân An, Phường Long An, Tỉnh Tây Ninh, Việt Nam

Địa chỉ cũ: 81 Đại Đồng, Thanh Trì, Hoàng Mai, Hà Nội (2020-2025)

Chịu trách nhiệm nội dung: Lê Thành An

Được xây dựng bằng cả con tim ❤️ của KITUHAY.COM

Nguồn dữ liệu: W3schools, Unicode, Wikipedia. © Copyright 2026 Công ty TNHH KiTuHAY. All rights reserved. Since 2020.

KiTuHAY® là thương hiệu thuộc Công ty TNHH KiTuHAY – website chính thức: kituhay.com. GPDKKD: 1102132198 – Cấp ngày 24/11/2025.

Facebook | TikTok | Youtube | DMCA.com Protection Status