Cách chuyển text sang hex
- Nhập hoặc dán văn bản của bạn. Hỗ trợ mọi ngôn ngữ, kể cả tiếng Việt có dấu, và cả emoji.
- Chọn bảng mã ký tự (UTF-8 là chuẩn), kiểu chữ và cách phân cách các byte. Đánh dấu Xuống dòng sau mỗi 16 byte để có bố cục kiểu hex dump.
- Sao chép chuỗi hex hoặc tải xuống dưới dạng file văn bản.
Văn bản được chuyển sang hex như thế nào
Máy tính lưu văn bản dưới dạng các byte. Công cụ tra giá trị byte của từng ký tự theo bảng mã đã chọn và viết nó thành hai chữ số hex. Trong ASCII và UTF-8, A là 65 = 41, a là 97 = 61 và dấu cách là 32 = 20, nên “Hi!” trở thành 48 69 21.
| Ký tự | Thập phân | Hex |
|---|---|---|
A … Z | 65 … 90 | 41 … 5A |
a … z | 97 … 122 | 61 … 7A |
0 … 9 | 48 … 57 | 30 … 39 |
| Dấu cách | 32 | 20 |
! | 33 | 21 |
| Xuống dòng | 10 | 0A |
So sánh UTF-8, Latin-1 và UTF-16
Cùng một ký tự có thể tạo ra các byte khác nhau tùy theo bảng mã. UTF-8 là lựa chọn đúng cho web, JSON và hầu hết các file; chỉ dùng bảng mã khác khi hệ thống nhận dữ liệu yêu cầu điều đó.
| Văn bản | UTF-8 | Windows-1252 | UTF-16 LE |
|---|---|---|---|
A | 41 | 41 | 41 00 |
é | C3 A9 | E9 | E9 00 |
€ | E2 82 AC | 80 | AC 20 |
| 😀 | F0 9F 98 80 | không hỗ trợ | 3D D8 00 DE |
Chuyển chuỗi (string) sang hex trong lập trình
- Python:
'Hello'.encode().hex()trả về48656c6c6f;.hex(' ')thêm dấu cách giữa các byte. - Node.js:
Buffer.from('Hello').toString('hex') - JavaScript trên trình duyệt:
[...new TextEncoder().encode('Hello')].map((b) => b.toString(16).padStart(2, '0')).join('') - Linux và macOS:
echo -n 'Hello' | xxd -p
Câu hỏi thường gặp
Text sang hex có giống ASCII sang hex không?
Với chữ cái tiếng Anh, chữ số và dấu câu thì có: ASCII và UTF-8 tạo ra cùng các byte. Các ký tự như é, ß, Ж, 中, chữ tiếng Việt có dấu hay emoji không thuộc ASCII; UTF-8 mã hóa mỗi ký tự đó bằng 2–4 byte.
Vì sao một ký tự lại tạo ra nhiều byte hex?
Trong UTF-8, chỉ các ký tự ASCII mới chiếm một byte. é thành C3 A9, € thành E2 82 AC và hầu hết emoji chiếm bốn byte. Hãy chọn UTF-16 hoặc Latin-1 nếu hệ thống đích yêu cầu các bảng mã đó.
Nên dùng ký tự phân cách nào?
Không phân cách cho mã băm (hash) và chuỗi gọn, dấu cách cho hex dump dễ đọc, dấu hai chấm cho địa chỉ MAC và dấu vân tay (fingerprint) của chứng chỉ, 0x48, 0x65 cho mảng trong C, C# hoặc Java, và \x48 cho chuỗi ký tự (string literal) trong C, Python hoặc shell script.
Làm sao để chuyển hex ngược lại thành văn bản?
Nhấn Đảo chiều: chuỗi hex được chuyển sang ô đầu vào và được giải mã bằng cùng bảng mã. Công cụ giải mã chấp nhận mọi ký tự phân cách có ở đây.