Bài học codec · Base16 / Hex

Base16 / Hex: đọc trực tiếp từng byte UTF-8

Base16, thường gọi là hexadecimal hoặc Hex, viết mỗi byte bằng hai ký hiệu trong 0–9 và A–F. Cách này trực tiếp và dễ đọc khi kiểm tra byte.

Chuẩn · RFC 4648 Khả năng khôi phục: Chính xác với các cặp byte Base16 đầy đủ và decode thành UTF-8 hợp lệ.
Mục tiêu bài học

Liên hệ một byte với hai chữ số hexadecimal và nhận biết cặp thiếu hoặc dãy byte không tạo được text UTF-8 hợp lệ.

Encode Keyboard xuất Base16 chữ hoa canonical không có dấu ngăn. Decode nhận hex hoa hoặc thường và ASCII whitespace, sau đó yêu cầu đủ cặp byte và UTF-8 hợp lệ.

01

Encode Keyboard xử lý như thế nào

1

Tạo byte UTF-8

Mỗi ký tự input trở thành một hoặc nhiều byte theo UTF-8.

2

Chia mỗi byte làm hai nửa

Bốn bit cao và bốn bit thấp lần lượt ánh xạ thành một chữ số hex.

3

Kiểm tra theo cặp byte

Decode từ chối ký hiệu ngoài hex, số chữ số lẻ và byte không tạo được text UTF-8. U+FEFF đầu được giữ nguyên.

02

Ví dụ từng bước

Đầu vàoHi
Kết quả4869

H là byte 0x48 và i là byte 0x69, nên mỗi byte input luôn chiếm hai chữ số hex.

03

Nên dùng khi

  • Xem byte UTF-8 gọn hơn Binary
  • So sánh text với log mức byte
  • Học cách nhóm bốn bit ánh xạ sang hexadecimal
04

Kiểm tra hợp lệ và lỗi thường gặp

  • Chỉ dùng số 0–9 và chữ A–F hoặc a–f
  • Sau khi bỏ whitespace tùy chọn, số chữ số phải chẵn
  • Cặp byte hợp lệ vẫn có thể không tạo được text UTF-8
05

Thực hành trong trình duyệt

Công cụ dùng đúng quy tắc đã mô tả của app và chỉ chạy trong tab này.

Base16 / HexCông cụ dùng đúng quy tắc đã mô tả của app và chỉ chạy trong tab này.
Kết quả

Công cụ dùng đúng quy tắc đã mô tả của app và chỉ chạy trong tab này.

06

Kiểm tra nhanh

Vì sao mỗi byte luôn cần hai chữ số Base16?