Quoted-Printable — Вікіпедія
Quoted-Printable — MIME-сумісне транспортне кодування, визначене в RFC 2045 (6.7)[1] .
Це кодування в основному використовується в електронній пошті для різних національних мов, які використовують латинські алфавіти для кодування символів, що не є ASCII, тобто коди яких перевищують 127 (старший біт яких дорівнює 1). Воно також використовується для публікації повідомлень у групах новин, хоча це не рекомендується.
Кодування з можливістю друку в лапках погано підходить для передачі двійкових даних, оскільки для рівномірного розподілу значень байтів (наприклад, у стиснутих файлах) воно дає середні накладні витрати 225 %, порівняно з 33 % для кодування base64 .
Дещо модифікована версія цього кодування, яка називається Q-кодуванням, використовується для розширеної нотації полів заголовків інтернет-повідомлень і описана в RFC 2047 (4.2)[2] .
Quoted-Printable залишає без змін усі байти зі значеннями менше 127, які не є контрольними символами ASCII або пробілами (тобто значення більше 32) і не є знаком рівності =
(код 61, шістнадцятковий 3D).
Байти, що залишилися, перетворюються у 3-байтові рядки в кодуванні ASCII, що представляють шістнадцяткові коди цих байтів, яким передують знаки модифікації, які є знаками рівності =
. Сам знак рівності замінено на =3D
, щоб уникнути неоднозначності. Знаки табуляції (код 9) і пробіли (код 32, шістнадцяткове число 20) зберігаються як вони є, якщо вони не знаходяться в кінці закодованого рядка, у цьому випадку вони можуть бути =09
і =20
відповідно. Альтернативним рішенням, щоб запобігти тому, щоб символи табуляції та пробіли були в кінці закодованих рядків, є розміщення знака рівності =
у кінці кожного рядка, який тоді діє як м'який розрив рядка.
Максимальна довжина кожного закодованого рядка становить 76 символів. Якщо розрив рядка потрібно вставити в задану позицію, його слід розмістити як послідовність CR (код 13) LF (код 10) в системі ASCII, а не як шістнадцяткові значення, закодовані у формі =0D=0A
.
Наступний текст наведено французькою мовою з французькими діакритичними знаками, які зазвичай кодуються у 2 байти у форматі UTF-8:
J'interdis aux marchands de vanter trop leur 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 vulgaire.
Після кодування наведеного вище тексту в Quoted-Printable можна отримати таку форму:
J'interdis aux marchands de vanter trop leur marchandises. Шрифт Carils 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 route =C3=A0 suivre les voil=C3=A0 bi= ent=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire ils te f= abriquent pour te la vendre une =C3=A2me vulgaire.
- ↑ RFC 2045 : Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies / N. Freed, N. Borenstein ; IETF. — 1996. — November. — P. 18-22. — DOI 10.17487/RFC2045.
- ↑ RFC 2047 : MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text / K. Moore ; IETF. — 1996. — November. — P. 5. — DOI 10.17487/RFC2047.