กลับไปหน้าบทความ

อ่าน 3 นาที

อ้างอิง-พิมพ์ได้

การ เข้ารหัสแบบ Quoted-Printable (SMTP)เป็นไวยากรณ์การหลีกเลี่ยงที่ใช้ตัวอักขระ ASCII ที่พิมพ์ได้ ( ตัวอักษร ตัวเลขและเครื่องหมายเท่ากับ= ) เพื่อแทนข้อมูลไบนารี ใดๆ...

อ้างอิง-พิมพ์ได้

การ เข้ารหัสแบบ Quoted-Printable (SMTP)เป็นไวยากรณ์การหลีกเลี่ยงที่ใช้ตัวอักขระ ASCII ที่พิมพ์ได้ ( ตัวอักษร ตัวเลขและเครื่องหมายเท่ากับ= ) เพื่อแทนข้อมูลไบนารี ใดๆ เพื่อให้สามารถส่ง ข้อมูล 8 บิตผ่านเส้นทางข้อมูล 7 บิต หรือโดยทั่วไปผ่านสื่อที่ไม่รองรับ 8 บิตอย่างสมบูรณ์ในอดีต เนื่องจากระบบและโปรโตคอลที่ใช้ในการถ่ายโอนข้อความมีหลากหลาย อีเมลจึงมักถูกมองว่าไม่รองรับ 8 บิตอย่างสมบูรณ์ – อย่างไรก็ตามเซิร์ฟเวอร์SMTP ในปัจจุบัน ส่วนใหญ่รองรับ 8 บิตอย่างสมบูรณ์และรองรับส่วน8BITMIMEขยายนี้ นอกจากนี้ยังสามารถใช้กับข้อมูลที่มีอ็อกเท็ต ที่ไม่ได้รับอนุญาตหรือความยาวบรรทัดเกินขีดจำกัดของ SMTP ได้ อีก ด้วย โดยถูกกำหนดให้เป็นการเข้ารหัสการถ่ายโอนเนื้อหา MIME สำหรับใช้ในอีเมล

การเข้ารหัสแบบ Quoted-Printable ทำงานโดยใช้เครื่องหมายเท่ากับ=เป็นอักขระหลีกนอกจากนี้ยังจำกัดความยาวบรรทัดไว้ที่ 76 ตัวอักษร เนื่องจากซอฟต์แวร์บางตัวมีข้อจำกัดเรื่องความยาวบรรทัด

การแนะนำ

MIMEกำหนดกลไกสำหรับการส่งข้อมูลทุกประเภทในอีเมล รวมถึงข้อความในภาษาอื่นที่ไม่ใช่ภาษาอังกฤษโดยใช้การเข้ารหัสอักขระอื่นที่ไม่ใช่ ASCII อย่างไรก็ตาม การเข้ารหัสเหล่านี้มักใช้ค่าไบต์ที่อยู่นอกช่วง ASCII ดังนั้นจึงจำเป็นต้องเข้ารหัสเพิ่มเติมก่อนจึงจะเหมาะสมสำหรับการใช้งานในสภาพแวดล้อมที่ไม่รองรับ 8 บิต การเข้ารหัสแบบ Quoted-Printable เป็นวิธีการหนึ่งที่ใช้ในการแมปไบต์ใดๆ ให้เป็นลำดับของอักขระ ASCII ดังนั้น Quoted-Printable จึงไม่ใช่รูปแบบการเข้ารหัสอักขระโดยตรง แต่เป็นเลเยอร์การเข้ารหัสข้อมูลที่จะใช้ภายใต้การเข้ารหัสอักขระแบบไบต์การเข้ารหัสแบบ Quoted-Printable สามารถย้อนกลับได้ หมายความว่าไบต์ดั้งเดิมและอักขระที่ไม่ใช่ ASCII ที่ไบต์เหล่านั้นแทน สามารถกู้คืนได้เหมือนเดิมทุกประการ

การเข้ารหัสแบบ Quoted-printable และ Base64 เป็นวิธี การเข้ารหัสไบนารีเป็นข้อความสองวิธีที่กำหนดไว้ใน RFC 2045 ซึ่งเป็นส่วนหนึ่งของ MIME RFC [ 1 ]

Quoted-Printable และBase64เป็นการเข้ารหัสการถ่ายโอนเนื้อหา MIME สองแบบ หากไม่นับการเข้ารหัสแบบ "7 บิต" และ "8 บิต" ทั่วไป หากข้อความที่จะเข้ารหัสไม่มีอักขระที่ไม่ใช่ ASCII มากนัก Quoted-Printable จะให้ผลลัพธ์ที่เข้ารหัสได้ค่อนข้างอ่านง่ายและกระชับในทางกลับกัน หากอินพุตมีอักขระ 8 บิตจำนวนมาก Quoted-Printable จะกลายเป็นอ่านยากและไม่มีประสิทธิภาพอย่างยิ่ง Base64 ไม่สามารถอ่านได้โดยมนุษย์ แต่มีค่าใช้จ่ายที่สม่ำเสมอสำหรับข้อมูลทั้งหมด และเป็นตัวเลือกที่เหมาะสมกว่าสำหรับรูปแบบไบนารีหรือข้อความในสคริปต์อื่นที่ไม่ใช่อักษรละติน

การเข้ารหัส

ค่าไบต์ 8 บิตใดๆ สามารถเข้ารหัสได้ด้วยอักขระ 3 ตัว: =ตามด้วย ตัวเลขฐาน สิบหก สองหลัก (0–9 หรือ A–F) ซึ่งแทนค่าตัวเลขของไบต์นั้น ตัวอย่างเช่น อักขระ ฟอร์มฟีด ASCII (ค่าฐานสิบ 12) สามารถแทนด้วย=0Cและเครื่องหมายเท่ากับ ASCII (ค่าฐานสิบ 61) ต้องแทนด้วย=3Dอักขระทั้งหมด ยกเว้นอักขระ ASCII ที่พิมพ์ได้หรืออักขระขึ้นบรรทัดใหม่ (แต่รวมถึง ด้วย=) ต้องเข้ารหัสในลักษณะนี้

อักขระ ASCII ที่พิมพ์ได้ทั้งหมด (ค่าทศนิยมระหว่าง 33 ถึง 126) สามารถแสดงได้ด้วยตัวเอง ยกเว้น=(ค่าทศนิยม 61 ค่าเลขฐานสิบหก 3D ดังนั้น=3D)

อักขระแท็บและ ช่องว่าง ของ ASCII ซึ่งมีค่าทศนิยม 9 และ 32 สามารถแทนได้ด้วยตัวเอง ยกเว้นในกรณีที่อักขระเหล่านี้ปรากฏที่ท้ายบรรทัดที่เข้ารหัส ในกรณีนั้น จะต้องใช้อักขระพิเศษ(แท็บ) หรือ(ช่องว่าง) หรือตามด้วย(การขึ้นบรรทัดใหม่แบบอ่อน) เป็นอักขระสุดท้ายของบรรทัดที่เข้ารหัส วิธีแก้ปัญหาสุดท้ายนี้ถูกต้อง เพราะจะป้องกันไม่ให้แท็บหรือช่องว่างเป็นอักขระสุดท้ายของบรรทัดที่เข้ารหัส =09=20=

หากข้อมูลที่กำลังเข้ารหัสมีตัวแบ่งบรรทัดที่มีความหมาย จะต้องเข้ารหัสเป็นลำดับ ASCII CR LF ไม่ใช่ค่าไบต์ดั้งเดิม ไม่ว่าจะโดยตรงหรือผ่าน=เครื่องหมาย ในทางกลับกัน หากค่าไบต์ 13 และ 10 มีความหมายอื่นนอกเหนือจากจุดสิ้นสุดของบรรทัด (ในประเภทสื่อ[ 2 ]เป็นต้น) จะต้องเข้ารหัสเป็น=0Dและ=0Aตามลำดับ

บรรทัดของข้อมูลที่เข้ารหัสแบบ Quoted-Printable ต้องมีความยาวไม่เกิน 76 ตัวอักษร เพื่อให้เป็นไปตามข้อกำหนดนี้โดยไม่เปลี่ยนแปลงข้อความที่เข้ารหัสสามารถเพิ่มการขึ้นบรรทัดใหม่แบบอ่อนได้= ตามต้องการ การขึ้นบรรทัดใหม่แบบอ่อนประกอบด้วย อักขระ `<br>` ที่ส่วนท้ายของบรรทัดที่เข้ารหัส และจะไม่ปรากฏเป็นการขึ้นบรรทัดใหม่ในข้อความที่ถอดรหัสแล้ว[ 2 ]การขึ้นบรรทัดใหม่แบบอ่อนเหล่านี้ยังช่วยให้สามารถเข้ารหัสข้อความโดยไม่ต้องขึ้นบรรทัดใหม่ (หรือมีบรรทัดที่ยาวมาก) สำหรับสภาพแวดล้อมที่มีขนาดบรรทัดจำกัด เช่น ข้อจำกัด 1,000 ตัวอักษรต่อบรรทัดของ ซอฟต์แวร์ SMTP บางตัว ตามที่อนุญาตโดย RFC 821 [ 3 ] และ RFC 2821 [ 4 ]

มีการใช้รูปแบบ Quoted-Printable ที่ปรับเปลี่ยนเล็กน้อยในส่วนหัวของข้อความ

ตัวอย่าง

ตัวอย่างต่อไปนี้เป็นข้อความภาษาฝรั่งเศส (เข้ารหัสในรูปแบบ UTF-8) ซึ่งมีตัวอักษรที่มีเครื่องหมายกำกับเสียง (เช่นé ) อยู่เป็นจำนวนมาก

J'interdis aux Marchands de vanter trop leurs Marchandises รถยนต์ ils se แบบอักษร= vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est par essence qu= 'un moyen, et te trompant ainsi sur la path =C3=A0 suivre les voil=C3=A0 b= ient=C3=B4t qui te d=C3=A9gradent, รถยนต์ si leur musique est vulgaire ils te = fabriquent pour te la vendre une =C3=A2me vulgaire. =E2=80=94=E2=80=8AAAntoine de Saint-Exup=C3=A9ry, Citadelle (1948) 

นี่คือการเข้ารหัสข้อความอ้างอิงต่อไปนี้:

J'interdis aux Marchands de vanter trop leurs Marchandises Car ils se font vite pédagogues et t'enseignent comme but ce qui n'est par essence qu'un moyen, et te trompant ainsi sur la route à suivre les voilà bientôt qui te dégradent, car si leur musique est vulgaire ils te fabriquent pour te la vendre une âme หยาบคาย

ดูเพิ่มเติม

หมายเหตุ

  1. ^นี่หมายความว่ามีการใช้การเข้ารหัสที่เข้ากันได้กับ ASCII ข้อความที่เข้ารหัสแบบ Quoted-Printable เช่น EBCDICจะอ่านไม่ได้แน่นอน
  • RFC  1521 (ล้าสมัยแล้ว)
  • RFC  2045 (MIME)
    • RFC 2045 — 6.7. การเข้ารหัสการถ่ายโอนเนื้อหาที่อ้างอิงและพิมพ์ได้
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Quoted-printable&oldid=1341603433 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อ้างอิง-พิมพ์ได้

การ เข้ารหัสแบบ Quoted-Printable (SMTP)เป็นไวยากรณ์การหลีกเลี่ยงที่ใช้ตัวอักขระ ASCII ที่พิมพ์ได้ ( ตัวอักษร ตัวเลขและเครื่องหมายเท่ากับ= ) เพื่อแทนข้อมูลไบนารี ใดๆ...

การแนะนำ

MIME กำหนดกลไกสำหรับการส่งข้อมูลทุกประเภทในอีเมล รวมถึงข้อความในภาษาอื่นที่ไม่ใช่ ภาษาอังกฤษ โดยใช้ การเข้ารหัสอักขระ อื่นที่ไม่ใช่ ASCII อย่างไรก็ตาม การเข้ารหัสเหล่านี้มักใช้ค่าไบต์ที่อยู่นอกช่วง ASCII...

การเข้ารหัส

ค่าไบต์ 8 บิตใดๆ สามารถเข้ารหัสได้ด้วยอักขระ 3 ตัว: = ตามด้วย ตัวเลขฐาน สิบหก สองหลัก (0–9 หรือ A–F) ซึ่งแทนค่าตัวเลขของไบต์นั้น ตัวอย่างเช่น อักขระ ฟอร์มฟีด ASCII (ค่าฐานสิบ 12) สามารถแทนด้วย =0C และเครื่องหมายเท่ากับ ASCII (ค่าฐานสิบ 61) ต้องแทนด้วย =3D...

ตัวอย่าง

ตัวอย่างต่อไปนี้เป็นข้อความภาษาฝรั่งเศส (เข้ารหัสในรูปแบบ UTF-8) ซึ่งมีตัวอักษรที่มีเครื่องหมายกำกับเสียง (เช่น é ) อยู่เป็นจำนวนมาก