Quoted-Printable-Kodierung
# Quoted-Printable-Kodierung

Die Quoted-Printable-Kodierung (aus englischquoted printable mit quoted im Sinne von maskiert, also „druckbar durch Maskierung“) – auch kurz QP-Kodierung genannt – ist ein Verfahren, bei dem einzelne Zeichen (oder Bytes) außerhalb des ASCII-Zeichensatzes speziell übersetzt (oder kodiert) werden. Sie ist ein vorgeschlagener Internetstandard und seit November 1996 im beschrieben. Sie wird vor allem als zusätzliche Kodierung bei E-Mails verwendet, da bis heute nicht sichergestellt ist, dass alle Zwischenstellen beim E-Mail-Versand sämtliche 8-Bit-Zeichen (entspricht 256 Möglichkeiten je Byte) verarbeiten können; die ursprüngliche E-Mail-Spezifikation sah nur 7Bit vor (128Möglichkeiten je Byte).

## Weitere Einzelheiten

Um trotzdem Zeichen aus dem Bereich 127–255 verwenden zu können, ohne dabei die Kompatibilität zu älteren Systemen zu gefährden, werden diese Zeichen zusätzlich kodiert. Dabei werden sämtliche Bytes außerhalb der dezimalen ASCII-Bereiche 9, 32–60 und 62–126 durch ein =-Zeichen, gefolgt vom Hexadezimalwert des Bytes, ersetzt. Das =-Zeichen befindet sich außerhalb dieses Bereichs (ASCII-Wert 61) und wird daher ebenso mit =3D kodiert. Besonders zu beachten ist, dass CR und LF, soweit sie nicht als Zeilenumbruch verwendet werden sollen, in der Form =0D bzw. =0A dargestellt werden müssen.

Erlaubte Zeichen:

| ASCII-Dezimalcode | Erlaubte Zeichen |
| - | - |
| 9 | Tabulatorzeichen |
| 32–60 | Leerzeichen und !"#$%&'*+,-./0123456789:;< |
| 62–126 | >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ |

Darüber hinaus wird, falls die ursprüngliche Zeile auf ein Leerzeichen (ASCII 32) geendet hatte, dieses als =20 codiert. Auf diese Weise ist sowohl garantiert, dass Transportmechanismen, die Leerzeichen am Zeilenende entfernen, die Daten nicht beschädigen, als auch, dass beim Ausdrucken einer QP-codierten Datei erkennbar bleibt, wie viele Leerzeichen sich am Ende der Zeile befunden hatten. Dementsprechend wird auch das Tabulatorzeichen (ASCII 9) oft generell durch =09 ersetzt (obwohl seine Unversehrtheit beim Mailtransport eigentlich garantiert ist), damit die gedruckte Form absolut eindeutig ist.

Um die Länge der Zeilen auf 76 Zeichen zu begrenzen, wird bei längeren Zeilen nach meist 75 Zeichen ein = an das Zeilenende gesetzt und der Text in der nächsten Zeile fortgesetzt. Der auf diese Weise erzwungene Zeilenumbruch wird beim Dekodieren wieder entfernt.

### Beispiel

Dieser Text im Zeichensatz ISO 8859-1 als quoted-printable kodiert:

Man erkennt die kodierten Umlaute sowie den erzwungenen Zeilenumbruch nach dem Wort „Hüte“, bei dem das Leerzeichen in die nächste Zeile verschoben wird. Der ursprünglich vorhandene Zeilenumbruch hinter „mehr,“ ist noch ohne ein = am Ende vorhanden und wird beim Dekodieren beibehalten.

