Praktický příklad
Quoted-printable podle RFC 2045 zapisuje bajty UTF-8 tisknutelnými znaky ASCII a hexadecimálními úniky =HH. Převeďte údaje lokálně v prohlížeči. Například vstup "=C4=8Cau,=20sv=C4=9Bte!" dá výsledek "Čau, světe!". Porovnejte obě strany znak po znaku; viditelný zápis může skrývat odlišné bajty nebo kombinující znaménka. V tomto směru se zakódovaný zápis změní na čitelný text. Vložte celou posloupnost i s výplní či úniky a znaky porovnejte se zdrojovým systémem. Syntakticky správný zápis může stále obsahovat bajty, které netvoří platný text UTF-8.
Jak zápis funguje
Quoted-printable je přenosové kódování MIME podle RFC 2045. Tisknutelné ASCII může projít beze změny, zatímco bajt se dá zapsat rovnítkem a dvěma hexadecimálními číslicemi. Písmeno s diakritikou v UTF-8 často potřebuje více úniků; samotné rovnítko je =3D. Měkký konec řádku tvoří = a CRLF a při dekódování nepřidává obsah. Nástroj escapuje mezery a tabulátory; konce řádků v textu normalizuje na CRLF. Tělo e-mailu může mít také pevné konce řádků; kódované hlavičky používají příbuzný, ale odlišný zápis Q. Tento formát si nepleťte s HTML ani URL kódováním. Quoted-printable podle RFC 2045 zapisuje bajty UTF-8 tisknutelnými znaky ASCII a hexadecimálními úniky =HH.
Textová transformace má směr. Nejdříve zjistěte, zda je zdroj čitelný text Unicode, seznam bajtů, kódové body nebo již zakódovaný řetězec. Vložte krátkou hodnotu se známým významem, prohlédněte si výsledek a až potom zpracujte větší vstup. Zdroj si ponechte. Zakódovaný zápis může být vratný a přitom odhalit každý původní bajt každému, kdo zná formát; samotné kódování soukromí nechrání. Výpočet probíhá v tomto prohlížeči a vložený obsah neposílá na konverzní server. Výsledek se přesto může stát veřejným, vložíte-li ho do sdíleného dokumentu, hlášení chyby či adresy URL.
Omezení a spolehlivé použití
Jde o quoted-printable v UTF-8 s měkkými konci řádků. Konce řádků se normalizují na CRLF; nejde o Q kódování hlavičky e-mailu. Použijte přesně tu abecedu, kódování bajtů a normalizační tvar, které očekává přijímající systém. Podobné formáty nemusí být zaměnitelné. Dekódovaný řetězec může obsahovat značkování či řídicí znaky a další aplikace jej musí považovat za nedůvěryhodný vstup. Platný převod také nedokazuje oprávněnost, bezpečnost ani věcnou správnost údajů. U vratného postupu zkuste zpětný převod a porovnejte kódové body nebo bajty UTF-8, pokud dva řetězce vypadají stejně, ale při přesném porovnání se liší. U ukládaných či podepisovaných dat zdokumentujte transformaci v datovém rozhraní.