Binary & UTF-8

Chuyển tiếng Việt và emoji sang Binary bằng UTF-8

Một ký tự nhìn thấy không phải lúc nào cũng là một byte. Encode Keyboard đổi text sang UTF-8 trước rồi hiển thị từng byte bằng tám bit, nên English, tiếng Việt và emoji cùng theo một quy tắc đảo ngược.

Trả lời nhanh

Điểm cần nhớ

  • UTF-8 dùng từ một đến bốn byte cho một Unicode scalar value.
  • Mỗi byte trở thành đúng tám chữ số Binary trong Encode Keyboard.
  • Chỉ khôi phục chính xác khi các bit tạo thành chuỗi byte UTF-8 hợp lệ.
01

Ký tự nhìn thấy và byte là hai lớp khác nhau

Unicode gán giá trị trừu tượng cho ký tự. UTF-8 tuần tự hóa các giá trị đó thành byte: ký tự ASCII dùng một byte, nhiều chữ tiếng Việt dùng hai byte và nhiều emoji dùng bốn byte. RFC 3629 định nghĩa chuỗi UTF-8 dài từ một đến bốn octet.

Binary chỉ là cách viết khác của giá trị số trong từng byte. Encode Keyboard thêm số 0 đầu để mỗi byte luôn đủ tám bit và ngăn nhóm bằng khoảng trắng cho dễ đọc.

02

Ví dụ English, tiếng Việt và emoji

Các ví dụ sau cho thấy byte UTF-8 dạng thập lục phân và nhóm 8 bit tương ứng:

  • A → 41 → 01000001 (một byte).
  • đ → C4 91 → 11000100 10010001 (hai byte).
  • á → C3 A1 → 11000011 10100001 (hai byte).
  • 👋 → F0 9F 91 8B → 11110000 10011111 10010001 10001011 (bốn byte).
Ví dụ · Hai ký tự ASCII
Hi01001000 01101001

H là byte 72 và i là byte 105. Mỗi byte được viết bằng tám bit.

03

Vì sao hai text nhìn giống nhau có thể cho bit khác nhau?

Unicode có thể biểu diễn một số hình thức hiển thị bằng nhiều chuỗi khác nhau. Chữ á dựng sẵn và chữ a đi cùng dấu sắc kết hợp có thể nhìn giống hệt nhưng dùng code point và byte khác nhau.

Encode Keyboard giữ nguyên chuỗi input; Binary và Base64 không tự ý chuẩn hóa Unicode. Vì vậy hai chuỗi nhìn giống nhau có thể encode khác nhau, trong khi mỗi chuỗi vẫn round-trip về đúng cấu trúc ban đầu của nó.

04

Một phép Binary decode hợp lệ cần gì?

Bộ decode chỉ nhận 0 và 1 sau khi bỏ khoảng trắng được phép. Số bit phải chia thành các byte đủ tám bit và các byte đó phải tạo được text UTF-8 hợp lệ.

Binary không tạo tính bí mật. Ai hiểu byte cũng có thể khôi phục text. Hãy dùng nó để học, quan sát UTF-8 hoặc biểu diễn đảo ngược nội dung không nhạy cảm.

?

Câu hỏi thường gặp

Một ký tự luôn bằng một byte phải không?

Không. Trong UTF-8, một Unicode scalar value dùng từ một đến bốn byte; một grapheme nhìn thấy còn có thể chứa nhiều scalar value.

Vì sao emoji tạo bốn nhóm bit?

Nhiều emoji dùng bốn byte UTF-8 và Encode Keyboard hiển thị một nhóm tám bit cho mỗi byte.

Binary có phải mã hóa bảo mật không?

Không. Đây là cách biểu diễn số công khai và có thể đảo ngược mà không cần khóa bí mật.

Nguồn chính thống

Bài viết ưu tiên tài liệu từ tổ chức sở hữu tiêu chuẩn hoặc nền tảng.

  1. RFC 3629: UTF-8, a transformation format of ISO 10646
  2. Unicode glossary

Encode Keyboard

Dùng ngay tại nơi bạn gõ

Encode Keyboard biến đổi văn bản trên thiết bị trong app hoặc bàn phím custom của iOS. Không cần bật Full Access.

Tải Encode Keyboard trên App Store