Cách sử dụng
- Chọn Mã hóa để tạo một khối xxencode, hoặc Giải mã để chuyển một khối như vậy trở lại thành dữ liệu.
- Để nguyên tùy chọn Dòng begin / end ở trạng thái bật và đặt Tên tệp để có một khối hoàn chỉnh, hoặc tắt tùy chọn này để chỉ lấy các dòng dữ liệu.
- Nhập hoặc dán dữ liệu đầu vào, hoặc mở một tệp. Kết quả được cập nhật ngay khi bạn gõ.
- Sao chép hoặc tải xuống kết quả. Khi giải mã, hãy chọn đầu ra Hex hoặc tải tệp xuống nếu dữ liệu không phải văn bản.
Xxencode là gì?
Xxencode giữ nguyên cấu trúc của uuencode và chỉ thay đổi các ký tự. Mỗi 3 byte vẫn trở thành bốn giá trị 6 bit, mỗi dòng dữ liệu vẫn chứa tối đa 45 byte sau một ký tự chỉ độ dài, và khối dữ liệu vẫn nằm giữa một dòng begin 644 name và một dòng end.
64 giá trị được ánh xạ sang +, -, các chữ số 0-9, các chữ cái hoa A-Z và các chữ cái thường a-z, theo đúng thứ tự đó. Ký tự chỉ độ dài dùng cùng bảng này, nên một dòng đầy đủ 45 byte bắt đầu bằng h, và dòng rỗng trước end chỉ gồm một ký tự +. Vì bố cục giống hệt nhau, đầu ra có cùng kích thước với uuencode: lớn hơn đầu vào khoảng 38%, tính cả các ký tự chỉ độ dài và ký tự xuống dòng.
Vì sao xxencode ra đời
Đầu ra của uuencode chứa đầy dấu câu như [, ], \, ^ và !. Máy tính lớn (mainframe) của IBM dùng EBCDIC thay vì ASCII, và các ký tự này nằm ở những vị trí khác nhau trong các bảng mã EBCDIC khác nhau. Khi thư đi qua các cổng nối giữa mạng ASCII và mạng EBCDIC, những ký tự như vậy có thể bị chuyển đổi sai và tệp bị hỏng.
Chữ cái, chữ số, dấu cộng và dấu trừ đều giống nhau trong mọi bảng mã EBCDIC, nên văn bản xxencode được chuyển đổi chính xác theo cả hai chiều. Về sau MIME cũng đạt được mục tiêu tương tự: Base64 cũng chỉ dùng chữ cái, chữ số và vài ký hiệu giống hệt nhau trong ASCII và EBCDIC. Xxencode chưa bao giờ phổ biến bằng uuencode, và cuối cùng Base64 đã thay thế cả hai.
So sánh uuencode và xxencode
| Uuencode | Xxencode | |
|---|---|---|
| Ký tự | ASCII 32 đến 95, backtick thay cho số 0 | + - 0-9 A-Z a-z |
| Dòng đầy đủ 45 byte bắt đầu bằng | M | h |
| Dòng cuối trước end | ` | + |
| An toàn khi qua cổng nối EBCDIC | Không | Có |
Đặc tả
| Bảng ký tự | + - 0-9 A-Z a-z |
|---|---|
| Kích thước đầu ra | Khoảng 137%, tính cả ký tự đầu dòng |
| Phần đệm | Mỗi dòng tối đa 45 byte |
| Tiêu chuẩn | xxencode |
| Phân biệt hoa thường | Có |
Ví dụ
| Đầu vào (UTF-8) | Đầu ra |
|---|---|
Hello, World! | begin 644 data.bin
BG4JgP4wg63RjQalY6E++
+
end |
Base64.is | begin 644 data.bin
7Ea3nNHMo9aZn
+
end |
你好 | begin 644 data.bin
4t9qUtOKx
+
end |
Câu hỏi thường gặp
Làm sao phân biệt uuencode và xxencode?
h. Dòng uuencode chứa dấu câu và các dòng đầy đủ bắt đầu bằng M. Nếu giải mã tại đây báo lỗi ký tự không hợp lệ, hãy thử trang uuencode.Công cụ có ghi dòng begin và end không?
begin 644 kèm tên tệp bạn nhập, cùng các dòng kết thúc. Hãy tắt tùy chọn này nếu bạn chỉ cần các dòng dữ liệu đã mã hóa.Tôi có thể giải mã một khối không có dòng begin không?
Có. Khi không có dòng begin, mọi dòng không rỗng đều được giải mã như dữ liệu. Khi có, việc giải mã bắt đầu sau dòng đó và dừng ở dòng end, nên phần văn bản xung quanh được bỏ qua.