เอนโคเดอร์สำหรับการพิมพ์แบบอ้างอิง
Quoted-printable เป็นรูปแบบการเข้ารหัสที่ช่วยให้ข้อความขนาด 8 บิตสามารถส่งผ่านระบบอีเมลที่ใช้ 7 บิตได้อย่างถูกต้อง โดยเครื่องเข้ารหัสนี้จะแปลงไบต์ทุกตัวที่มีค่ามากกว่า 126 (รวมถึงไบต์พิเศษบางชนิด เช่น =) ให้กลายเป็นค่าเฮกซาเดซิมอล =XX เพื่อใช้ในการแทนตัวอักษรเฉพาะ ส่วนการเปลี่ยนบรรทัดจะทำโดยอัตโนมัติที่ตำแหน่ง 76 ตัวอักษร และให้ผลลัพธ์เป็นสตริงที่สามารถนำไปใส่ในเนื้อหาไฟล์ MIME รูปแบบ Content-Transfer-Encoding: quoted-printable ได้
วิธีการเข้ารหัสข้อมูลให้อยู่ในรูปแบบที่สามารถพิมพ์ได้โดยใช้เครื่องอักษร
-
1
วางข้อความของคุณ
โดยค่าเริ่มต้น ข้อมูลที่ป้อนจะถูกประมวลผลในรูปแบบ UTF-8 ตัวอักษรที่มีเครื่องหมายพิเศษและอีโมจิจะถูกแปลงเป็นลำดับไบต์หลายตัว
-
2
คลิกเพื่อเข้ารหัส
ไบต์ที่อยู่นอกช่วง ASCII สำหรับการพิมพ์ รวมถึงเครื่องหมาย = แบบตัวอักษรจริง จะถูกแปลงเป็นสัญลักษณ์ escape ชนิด =HH ในรูปแบบเลขฐาน 16 ที่เขียนด้วยตัวพิมพ์ใหญ่
-
3
ใช้การแบ่งบรรทัดแบบนุ่ม
บรรทัดที่มีความยาวเกิน 76 ตัวอักษรจะถูกแบ่งด้วยเครื่องหมาย = และคำสั่ง CRLF โดยระบบ MTA จะทำการรวมบรรทัดเหล่านั้นกลับเข้าด้วยกันอีกครั้ง
กฎเกณฑ์ (ฉบับย่อ)
RFC 2045 กำหนดคำศัพท์ว่า “quoted-printable” โดยประเด็นสำคัญมีดังนี้:
| ช่วงไบต์ | การจัดการ |
|---|---|
33 ถึง 126 ยกเว้น = (61) |
พิมพ์ตามสภาพเดิม |
| 9 (แท็บ), 32 (ช่องว่าง) | รูปแบบเดิม เว้นแต่จะอยู่ท้ายบรรทัด |
= (61) |
มักถูกเรียกอีกชื่อว่า =3D |
| ส่วนอื่นๆ ทั้งหมด | หลบหนีไปในรูปแบบ =HH |
| ความยาวบรรทัดมากกว่า 76 ตัวอักษร | ปรับรูปแบบการพันอักษรแบบนุ่มโดยใช้ = + CRLF |
ทำไมสิ่งนี้จึงมีอยู่
โดยประวัติศาสตร์ SMTP ได้รับการรับประกันว่าจะส่งข้อมูลในรูปแบบ 7 บิตอย่างถูกต้องและไม่มีข้อผิดพลาด หากข้อมูลอยู่นอกช่วงดังกล่าว อาจถูกตัดทอน กลับค่า หรือแบ่งส่วนได้ ส่วนรูปแบบ Quoted-printable จะทำให้เนื้อหาของข้อความสามารถอ่านได้อย่างชัดเจนเมื่อเปิดในโปรแกรมแก้ไขข้อผิดพลาด (ต่างจาก base64 ที่แสดงผลในรูปแบบไม่โปร่งใส) และยังคงปลอดภัยสำหรับการส่งข้อมูล
ข้อผิดพลาดที่พบบ่อย
- ช่องว่างที่อยู่หลัง: ช่องว่างที่ปลายบรรทัดต้องถูกเข้ารหัสเป็น
=20มิฉะนั้นระบบส่งอีเมลจะตัดช่องว่างนั้นออกไป - จุดสิ้นสุดบรรทัด: ควรใช้ CRLF แทน LF โดยเฉพาะอย่างยิ่ง เนื่องจากหัวข้อของ RFC 5322 มีข้อกำหนดให้ใช้ CRLF
- ให้เริ่มต้นด้วยการแปลงข้อความเป็นไบต์ UTF-8 ก่อน จากนั้นจึงแปลงเป็นรูปแบบที่สามารถแสดงเครื่องหมายอ้างอิงได้ หากทำในลำดับที่ผิด จะทำให้ตัวอักษรที่มีเครื่องหมายผิดรูป
คำถามที่พบบ่อย
ใช้รูปแบบที่สามารถพิมพ์ได้หากข้อความส่วนใหญ่เป็นตัวอักษร ASCII พร้อมไบต์ที่ไม่ใช่ ASCII เป็นครั้งคราว (เช่น อีเมลแบบยุโรปทั่วไป) ส่วนกรณีที่เนื้อหาเป็นข้อมูลแบบไบนารีหรือประกอบด้วยตัวอักษรที่ไม่ใช่ภาษาละตินจำนวนมาก จะใช้รูปแบบ Base64 เนื่องจากมีประสิทธิภาพในการจัดเก็บข้อมูลสูงกว่า
นั่นคืออักขระแบบตัวอักษรที่ใช้เครื่องหมายอัญมณีแบบเดียวทางด้านขวา (U+2019) ซึ่งถูกเข้ารหัสในรูปแบบไบต์ UTF-8 โดยไคลเอ็นต์ที่ไม่เข้าใจหลักการการแสดงผลของเครื่องหมายอัญมณีจะแสดงข้อมูลที่ผ่านการแปลงเป็นรูปแบบมาตรฐาน (raw escapes) แทน
RFC 2045 กำหนดค่า 76 เป็นขีดจำกัดสูงสุดที่แน่นอนสำหรับบรรทัดที่สามารถพิมพ์ได้ตามคำอ้างอิง โดยตัวเข้ารหัสส่วนใหญ่มักปิดบรรทัดที่ค่า 75 เพื่อให้มีพื้นที่สำหรับเครื่องหมาย = ซึ่งใช้เป็นจุดหยุดการพิมพ์แบบอ่อน การเกินค่า 76 อาจทำให้ระบบควบคุมการแปลภาษา (MTA) ที่เข้มงวดปฏิเสธการแปล
ใช่ ข้อความจะถูกส่งไปยังเว็บไซต์เพื่อเข้าหรือถอดรหัส อย่าวางรหัสผ่าน คีย์ส่วนตัว หรือข้อความลับ
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
เครื่องมือสร้าง EditorConfig
สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข
แปลงจาก CSV เป็น JSON
แปลงไฟล์ CSV ที่มีแถวหัวข้อให้เป็น JSON ในรูปแบบอาร์เรย์ของออบเจกต์ โดยแถวหัวข้อจะทำหน้าที่เป็นคีย์ และแถวข้อมูลจะกลายเป็นออบเจกต์ เพื่อใช้งานกับ API และโค้ด JavaScript
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Koder quoted-printable [PL]
- Đã trích dẫn – Bộ mã hóa in được [VI]
- Codificador Quoted-Printable [PT]
- 引用可能な印刷エンコーダ [JA]
- مشفر للطباعة المقتبسة [AR]
- Geciteerde aftekenbare encoder [NL]
- Quoted-Printable 인코더 [KO]
- Codificador Quoted-Printable [ES]
- Citerbar och utskriftsförmögen kodare [SV]
- Encoder yang dapat dicetak dan dikutip [ID]
- Encodeur Quoted-Printable [FR]
- Quoted-Printable-Encoder [DE]
- Codificatore Quoted-Printable [IT]
- Quoted-Printable Encoder [EN]
- Кодер для печатного копирования [RU]
- Quoted-Printable Kodlayıcı [TR]
- 可打印编码器 [ZH]