Công cụ này làm gì
Công cụ này cho bạn thấy các byte đằng sau một đoạn văn bản và chuyển byte trở lại thành văn bản. Gõ một từ và xem nó ở dạng nhị phân (01001000 01101001), thập lục phân (48 69), thập phân (72 105) hoặc bát phân (110 151). Dán một chuỗi byte từ bản dump gói tin, trình gỡ lỗi hay bài tập về nhà và đọc lại nó dưới dạng văn bản.
Mọi chuyển đổi đều đi qua UTF-8, nên hoạt động với mọi ngôn ngữ và cả emoji, không chỉ với ASCII thuần. Nhờ vậy bạn dễ thấy vì sao 你好 dài sáu byte hay vì sao một emoji tính là bốn byte trong một cột cơ sở dữ liệu.
Cách sử dụng
- Chọn Văn bản → byte để mã hóa hoặc Byte → văn bản để giải mã.
- Chọn định dạng số: nhị phân, hex, thập phân hoặc bát phân.
- Khi mã hóa, chọn dấu phân cách giữa các byte (dấu cách, không có, dấu phẩy hoặc xuống dòng), và chọn có viết hoa chữ cái hex hay không.
- Gõ hoặc dán đầu vào. Kết quả cập nhật ngay khi bạn gõ và có thể sao chép hoặc tải xuống.
Quy tắc giải mã
Khi giải mã, công cụ khá dễ dãi về cách trình bày:
- Các byte có thể được phân cách bằng dấu cách, dấu phẩy, dấu chấm phẩy hoặc xuống dòng, kết hợp tùy ý.
- Các tiền tố thông dụng được loại bỏ:
0x,\xvà%cho hex,0bcho nhị phân,0ohoặc\cho bát phân. - Một chuỗi dài không có dấu phân cách được tách thành các byte có độ rộng cố định: 8 chữ số cho nhị phân, 2 cho hex và 3 cho bát phân hoặc thập phân.
- Giá trị lớn hơn 255 hoặc chữ số không thuộc định dạng sẽ được báo lỗi kèm dòng và cột.
Ví dụ
Mã hóa Hi 你好 sang nhị phân cho ra chín byte: hai cho Hi, một cho dấu cách, và ba cho mỗi ký tự tiếng Trung. Cùng văn bản đó ở dạng hex là 48 69 20 e4 bd a0 e5 a5 bd, chính xác những gì bạn sẽ thấy trong trình soạn thảo hex hoặc trong URL dưới dạng %E4%BD%A0.
Khi nào công cụ hữu ích
Lập trình viên dùng nó để kiểm tra văn bản được lưu trên đĩa hoặc gửi qua mạng như thế nào, so sánh độ dài chuỗi tính theo byte và theo ký tự, và gỡ lỗi mojibake (lỗi hiển thị sai bảng mã). Học sinh, sinh viên dùng nó để luyện tính nhị phân và thập lục phân bằng tay rồi kiểm tra đáp án.
Câu hỏi thường gặp
› Công cụ dùng bảng mã ký tự nào?
UTF-8, bảng mã của web. Ký tự ASCII chiếm một byte mỗi ký tự, chữ cái có dấu thường chiếm hai, còn ký tự tiếng Trung, Nhật hay Hàn chiếm ba. Emoji chiếm bốn.
› Tôi có thể dán byte có tiền tố 0x hoặc \x không?
Có. Khi giải mã, các tiền tố như 0x, \x và % cho hex, 0b cho nhị phân và 0o cho bát phân đều được loại bỏ, và dấu cách, dấu phẩy, dấu chấm phẩy cũng như ký tự xuống dòng đều dùng được làm dấu phân cách.
› Tại sao tôi gặp lỗi byte không phải UTF-8 hợp lệ?
Một số dãy byte không thể xuất hiện trong văn bản UTF-8, ví dụ một byte FF đứng riêng hoặc một ký tự nhiều byte bị cắt cụt. Hãy kiểm tra xem bạn đã sao chép đủ mọi byte và chọn đúng định dạng chưa.
› Văn bản của tôi có bị tải lên không?
Không. Việc mã hóa và giải mã chạy trong trình duyệt của bạn.