Đã trích dẫn – Bộ mã hóa in được
Quoted-printable là phương thức mã hóa cho phép văn bản 8 bit tồn tại trong quá trình truyền email 7 bit. Phương thức này chuyển đổi mỗi byte lớn hơn 126 (cùng một số giá trị đặc biệt như =) thành ký tự thoát hex =XX, tự động lồng dòng khi có 76 ký tự, và tạo ra một chuỗi có thể sử dụng trực tiếp trong phần thân email định dạng MIME Content-Transfer-Encoding: quoted-printable.
Cách mã hóa để tạo văn bản có thể in bằng cách đặt trong dấu ngoặc kép
-
1
Dán văn bản của bạn
Theo mặc định, dữ liệu đầu vào được xử lý theo chuẩn UTF-8. Các ký tự có dấu và biểu tượng emoji sẽ được biểu diễn dưới dạng các chuỗi nhiều byte.
-
2
Đánh vào “Đã mã hóa”
Các byte nằm ngoài phạm vi ASCII có thể in được, cùng với ký hiệu = dạng văn bản, sẽ được chuyển thành ký tự thoát =HH dưới dạng số thập phân hoa chữ.
-
3
Sử dụng các dấu ngắt dòng mềm
Các dòng dài hơn 76 ký tự sẽ bị đứt bằng dấu = ở cuối và ký hiệu CRLF. Máy chủ quản lý thư (MTA) của bạn sẽ tự động nối lại các dòng này.
Các quy tắc (phiên bản rút gọn)
RFC 2045 định nghĩa khái niệm “quote-printable”. Các nội dung quan trọng như sau:
| Phạm vi byte | Xử lý |
|---|---|
Từ 33 đến 126, ngoại trừ = (61) |
In the nguyên trạng |
| 9 (tab), 32 (khoảng trắng) | Như hiện tại trừ khi ở cuối dòng |
= (61) |
Luôn được chuyển đổi thành =3D |
| Tất cả các phần khác | Được mã hóa dưới dạng =HH |
| Độ dài dòng > 76 | Lấp đầy mềm với = + CRLF |
Tại sao điều này tồn tại
Trong lịch sử phát triển, SMTP luôn đảm bảo việc truyền dữ liệu sạch với độ dài 7 bit. Mọi giá trị nằm ngoài phạm vi này đều có thể bị cắt bỏ, đảo ngược hoặc phân tách thành các phần. Dạng định dạng “quoted-printable” giúp nội dung văn bản vẫn dễ đọc khi mở trong trình gỡ lỗi (khác với base64 vốn không rõ ràng), đồng thời vẫn đảm bảo an toàn khi truyền tải.
Những lỗi phổ biến
- Khoảng trắng ở cuối dòng: Khoảng trắng tại cuối dòng phải được mã hóa thành
=20; nếu không, các máy chuyển tiếp thư điện tử sẽ loại bỏ nó. - Đầu cuối dòng: Hãy sử dụng CRLF thay vì LF; các tiêu đề trong RFC 5322 yêu cầu phải sử dụng CRLF.
- Lần đầu tiên sử dụng UTF-8: Mã hóa văn bản sang định dạng byte UTF-8, sau đó chuyển sang định dạng có thể in kèm dấu ngoặc kép. Nếu thực hiện theo thứ tự sai sẽ làm sai lệch các ký tự có phụ âm.
Câu hỏi thường gặp
Dùng định dạng có thể in khi văn bản chủ yếu là ký tự ASCII với một số ký tự không phải ASCII (như thư điện tử tiêu chuẩn ở châu Âu). Dùng định dạng Base64 nếu nội dung là dữ liệu nhị phân hoặc chứa nhiều ký tự ngoài bảng Latin – vì định dạng này có khả năng lưu trữ hiệu quả hơn.
Đó là ký hiệu ngoặc đơn phải trong kiểu chữ (U+2019), được mã hóa theo định dạng byte UTF-8. Các thiết bị khách không hiểu về cơ chế in nội dung trong ngoặc đơn sẽ hiển thị các ký tự thoát đặc biệt ở dạng thô.
RFC 2045 quy định giá trị 76 là giới hạn tối đa cố định đối với một dòng văn bản có thể in được. Hầu hết các bộ mã hóa sẽ dừng trình tự ở vị trí 75 để tạo khoảng trống cho ký hiệu ngắt mềm (=) ở cuối dòng. Việc vượt quá giá trị 76 có thể dẫn đến việc bị các hệ thống quản lý thư điện tử (MTA) nghiêm ngặt từ chối xử lý.
Có. Văn bản được gửi đến trang web để mã hóa hoặc giải mã. Không dán mật khẩu, khóa riêng hay nội dung bí mật.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Trình giải mã mã JavaScript (JavaScript Deobfuscator)
Giải mã mã JavaScript đã được rút gọn hoặc nén bằng cách đổi tên biến, giải mã chuỗi và mảng, đảo ngược cấu trúc dòng điều khiển và làm đẹp mã.
Trình định dạng HTML
Định dạng HTML cục bộ trong trình duyệt với thụt lề hai hoặc bốn khoảng trắng. HTML không được tải lên hoặc xác thực.
Chuyển đổi HTML sang BBCode
Chuyển đổi các đoạn mã HTML thành BBCode dành cho phpBB, vBulletin và các phần mềm diễn đàn khác không hỗ trợ định dạng HTML thô.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- เอนโคเดอร์สำหรับการพิมพ์แบบอ้างอิง [TH]
- Codificador Quoted-Printable [PT]
- 引用可能な印刷エンコーダ [JA]
- Geciteerde aftekenbare encoder [NL]
- Quoted-Printable 인코더 [KO]
- Codificador Quoted-Printable [ES]
- Citerbar och utskriftsförmögen kodare [SV]
- مشفر للطباعة المقتبسة [AR]
- Encoder yang dapat dicetak dan dikutip [ID]
- Encodeur Quoted-Printable [FR]
- Koder quoted-printable [PL]
- Quoted-Printable-Encoder [DE]
- Codificatore Quoted-Printable [IT]
- Кодер для печатного копирования [RU]
- Quoted-Printable Kodlayıcı [TR]
- 可打印编码器 [ZH]
- Quoted-Printable Encoder [EN]