Hoppa till innehållet

Quoted printable

Från Wikipedia

Quoted printable (QP) är en kodningsmetod för att koda 8-bitars binära data till 7-bitarsdata, så att de kan skickas till exempel via e-post. Många e-postservrar (SMTP-servrar) klarar inte binära 8-bitarsdata.

Quoted printable är lämplig att använda på text om mängden binära data (tecknen 128-255 decimalt) är liten, till exempel för vanlig brödtext (kodad i till exempel UTF-8 eller någon av de västerländska iso-8859-kodningarna). Texten är då mer eller mindre läslig (om också kodningen fått nidnamnet "quoted unreadable") och filstorleken växer bara något. Om mängden binära data är stor är Base64 lämpligare att använda eftersom den i detta fall inte expanderar data lika mycket som Quoted Printable. Exempel på det senare är en JPEG-bild eller kinesiska. Base64 är också tryggare, eftersom vissa QP-tecken kan påverkas av konvertering från ett system till ett annat.

Kodningen görs i grova drag på följande sätt[1]:

  • Tecknen i intervallet (decimalt) 33-60 och 62-126 (i ASCII: det engelska alfabetet, siffror och interpunktion, "=" undantaget) kan lämnas som de är
  • Tecknen 9 (TAB) och 32 (blanktecken) kan lämnas som de är, utom i slutet av raden
  • Radbyten i formen ASCII CR följt av ASCII LF bör lämnas som de är (radbyten konverteras i många fall till denna form före kodningen)
  • Övriga tecken kodas som "=" följt av tecknet i tvåsiffrig hexadecimalform (till exempel blir åäö =E5=E4=F6), så alltså också CR och LF då de förekommer tillsammans utan att beteckna radbyte eller förekommer var för sig
  • Tecken andra än radbyten av ovannämnda form får kodas hexadecimalt enligt ovan (till exempel för att undvika problem vid konvertering till EBCDIC), radbyten av ovannämnda form kan kodas så om detta är väsentligt för datas integritet (till exempel i viss programkod)
  • Rader får inte vara längre än 76 tecken (själva radbytet oräknat); om raden bryts utan att motsvarande radbyte (i form av CR LF) fanns i ursprungsdata läggs "=" till som sista tecken före radbytet
  1. ^ RFC 2045 - MIME part one, kap 6.7 sid 18