Про кодування Quoted Printable
Quoted Printable — це кодування для передачі вмісту, яке використовує друковані символи ASCII для передачі 8-бітних даних через 7-бітний канал передачі даних або для систем, які не є 8-бітно чистими. Воно широко використовується в системах електронної пошти для надсилання повідомлень із міжнародними символами.
Поширені застосування Quoted Printable
- Тіло повідомлень електронної пошти з міжнародними символами (кодування MIME)
- Передача тексту зі спеціальними символами через застарілі системи
- Робити бінарні дані читабельними та редагованими у текстових редакторах
- Заголовки електронної пошти для не-ASCII символів (дещо інший формат)
- Збереження форматування тексту в повідомленнях електронної пошти
Як працює Quoted Printable
Кодування Quoted Printable слідує таким основним правилам:
- Друковані символи ASCII (значення від 33 до 126, крім 61) представлені як вони є
- Недруковані символи представлені знаком рівності (=) з подальшим шістнадцятковим значенням ASCII символу
- Сам знак рівності (=) кодується як =3D
- Рядки довжиною понад 76 символів розбиваються шляхом вставки "м'якого переносу рядка" (= в кінці рядка)
- Символи пробілу (32) та табуляції (9) можуть бути представлені як вони є, але не в кінці рядка
Стандарт MIME
Quoted Printable є частиною стандарту MIME (Multipurpose Internet Mail Extensions), який визначено в RFC 2045. Він використовується разом з іншими кодуваннями, такими як Base64, для забезпечення надійної передачі повідомлень електронної пошти з вкладеннями або спеціальними символами через різні системи електронної пошти.
Переваги та обмеження
Переваги:
- Читабельний людиною для тексту, який переважно складається з ASCII
- Ефективний для тексту з невеликою кількістю не-ASCII символів
- Зберігає розриви рядків та форматування
Обмеження:
- Менш ефективний, ніж Base64, для бінарних даних або тексту з багатьма спеціальними символами
- Складніший для правильної реалізації порівняно з деякими іншими кодуваннями
- Має специфічні правила для обробки переносів рядків та пробілів
Приклади
Звичайний текст | Quoted Printable |
---|---|
Привіт, Світ! | =D0=9F=D1=80=D0=B8=D0=B2=D1=96=D1=82, =D0=A1=D0=B2=D1=96=D1=82! |
Кафе | =D0=9A=D0=B0=D1=84=D0=B5 |
Україна | =D0=A3=D0=BA=D1=80=D0=B0=D1=97=D0=BD=D0=B0 |