Bộ chuyển đổi văn bản ↔ Unicode
Văn bản
Unicode
Chi tiết kỹ thuật
Cách hoạt động của bộ chuyển đổi Văn bản ↔ Unicode
Công cụ làm gì
Công cụ Văn bản ↔ Unicode chuyển đổi văn bản sang và từ các điểm mã Unicode theo nhiều ký pháp: U+XXXX, escape của JavaScript (\uXXXX hoặc \u{XXXXX}), thập phân, 0xHEX và thực thể số HTML (&#N; hoặc &#xHEX;). Bộ giải mã có tính “dễ dãi” — nó nhận diện mọi tổ hợp các ký pháp này xen kẽ trong văn bản và trích xuất các điểm mã. Bộ mã hóa cho phép bạn chọn định dạng đầu ra và ký tự phân tách giữa các điểm mã.
Các trường hợp sử dụng phổ biến cho lập trình viên
Lập trình viên frontend dùng công cụ để chuyển emoji và ký tự CJK thành các chuỗi escape ASCII an toàn cho tệp JSON, mã nguồn hoặc truyền qua các kênh bị hạn chế. Kỹ sư bản địa hóa kiểm tra chính xác các điểm mã được dùng trong một chuỗi đã dịch. Công cụ cũng hữu ích để phát hiện các ký tự vô hình hoặc giống nhau (homoglyph, ký tự nối độ rộng bằng 0, dấu RTL) ẩn trong một đoạn nội dung được sao chép.
Định dạng dữ liệu, kiểu hoặc biến thể
Ký pháp chuẩn của Unicode là U+XXXX cho Basic Multilingual Plane và U+XXXXX cho các mặt phẳng bổ sung. Escape của JavaScript dùng \uXXXX cho BMP và \u{XXXXX} (ES2015+) cho toàn bộ dải. HTML chấp nhận thực thể số (thập phân &#N; hoặc hex &#xN;). Định dạng thập phân thuần và 0xHEX có thể chuyển đổi qua lại bằng codePointAt / fromCodePoint mà không cần diễn giải thêm. Các ký tự astral (emoji như 🌍) được biểu diễn bằng một điểm mã duy nhất lớn hơn U+FFFF.
Các lỗi thường gặp và trường hợp biên
Các ký tự astral không thể biểu diễn bằng dạng \uXXXX cũ vì mỗi escape chỉ có 4 chữ số hex — hãy dùng \u{...} hoặc một cặp surrogate. Các điểm mã lớn hơn U+10FFFF là không hợp lệ theo đặc tả Unicode và sẽ bị từ chối. Dấu kết hợp và các chuỗi emoji ZWJ xuất hiện dưới dạng nhiều điểm mã dù chúng hiển thị như một glyph duy nhất. Bộ giải mã sẽ không diễn giải các thực thể HTML có tên (©, &) — hãy dùng một bộ giải mã HTML chuyên dụng cho các trường hợp đó.
Khi nào nên dùng công cụ này thay vì viết mã
Hãy dùng công cụ trên trình duyệt để kiểm tra nhanh, tạo chuỗi escape và săn homoglyph. Trong mã, ưu tiên các API chuỗi bản địa của ngôn ngữ (`String.fromCodePoint`, `Array.from(str)` để lặp theo điểm mã trong JS; `chr` và `ord` trong Python; `Character.toCodePoint` trong Java) cùng các thư viện ICU đầy đủ khi bạn cần chuẩn hóa (NFC/NFD), gập chữ hoa/thường (case folding) hoặc phân đoạn cụm grapheme.