Sitert-utskrift - Quoted-printable

Sitert-utskrivbar eller QP-koding , er et binært-til-tekst-kodingssystem som bruker utskrivbare ASCII-tegn ( alfanumerisk og likhetstegnet = ) for å overføre 8-biters data over en 7-biters datasti eller generelt over et medium som er ikke 8-biters ren . Historisk sett, på grunn av det brede spekteret av systemer og protokoller som kan brukes til å overføre meldinger, ble e-post ofte antatt å være ikke-8-biters-men moderne SMTP- servere er i de fleste tilfeller 8-biters rene og støtter 8BITMIMEUtvidelse. Den kan også brukes med data som inneholder ikke-tillatte oktetter eller linjelengder som overskrider SMTP-grenser. Det er definert som en MIME- innholdsoverføringskoding for bruk i e-post .

QP fungerer ved å bruke likhetstegnet =som en rømningskarakter . Det begrenser også linjelengden til 76, ettersom noe programvare har begrensninger på linjelengden.

Introduksjon

MIME definerer mekanismer for å sende andre typer informasjon i e-post, inkludert tekst på andre språk enn engelsk , ved bruk av andre tegnkoder enn ASCII. Imidlertid bruker disse kodingene ofte byteverdier utenfor ASCII-området, så de må kodes videre før de er egnet for bruk i et miljø som ikke er 8-biters rent. Sitert-utskrivbar koding er en metode som brukes for å kartlegge vilkårlige byte i sekvenser av ASCII-tegn. Så Quoted-Printable er ikke et tegnkodingsskjema i seg selv, men et datakodingslag som skal brukes under noen byte-orienterte tegnkodinger. QP-koding er reversibel, noe som betyr at de originale byte og dermed ikke-ASCII-tegnene de representerer kan gjenopprettes identisk.

Quote-Printable og Base64 er de to MIME-innholdsoverføringskodingene, hvis den trivielle "7bit" og "8bit" kodingen ikke telles. Hvis teksten som skal kodes ikke inneholder mange ikke-ASCII-tegn, resulterer Quote-Printable i et ganske lesbart og kompakt kodet resultat. På den annen side, hvis inngangen har mange 8-biters tegn, blir Quoted-Printable både uleselig og ekstremt ineffektiv. Base64 er ikke lesbar for mennesker, men har en jevn overhead for alle data og er det mer fornuftige valget for binære formater eller tekst i et annet skript enn det latinske skriptet .

Koding som kan skrives ut med sitat

Enhver 8-bits byteverdi kan kodes med 3 tegn: en =etterfulgt av to heksadesimale sifre (0–9 eller A – F) som representerer bytes numeriske verdi. For eksempel kan et ASCII -skjema feed tegn (desimal verdi 12) representeres av =0C, og et ASCII likhetstegn (desimal verdi 61) må være representert med =3D. Alle tegn unntatt utskrivbare ASCII -tegn eller slutten av linjetegn (men også =) må være kodet på denne måten.

Alle utskrivbare ASCII -tegn (desimalverdier mellom 33 og 126) kan representeres av dem selv, unntatt =(desimal 61, heksadesimal 3D, derfor =3D).

ASCII -fanen og mellomromstegn , desimalverdiene 9 og 32, kan representeres av seg selv, bortsett fra hvis disse tegnene vises på slutten av den kodede linjen. I så fall må de unnslippes som =09(fane) eller =20(mellomrom), eller bli fulgt av et =(mykt linjeskift) som det siste tegnet på den kodede linjen. Denne siste løsningen er gyldig fordi den forhindrer at fanen eller mellomrommet er det siste tegnet på den kodede linjen.

Hvis dataene som blir kodet inneholder meningsfulle linjeskift, må de bli kodet som en ASCII CR LF -sekvens, ikke som deres opprinnelige byteverdier, verken direkte eller via =tegn. Motsatt, hvis byte-verdier 13 og 10 har andre enn enden av linjen betydninger (i medietyper, for eksempel), så de må kodes som =0Dog =0Ahhv.

Linjer med siterte-utskrivbare kodede data må ikke være lengre enn 76 tegn. For å tilfredsstille dette kravet uten å endre den kodede teksten, kan myke linjeskift legges til etter ønske. Et mykt linjeskift består av en =på enden av en kodet linje, og vises ikke som et linjeskift i den dekodede teksten. Disse myke linjeskiftene tillater også koding av tekst uten linjeskift (eller som inneholder svært lange linjer) for et miljø der linjestørrelsen er begrenset, for eksempel 1000 tegn per linjegrense for noen SMTP -programvare, slik RFC 2821 tillater det.

En litt modifisert versjon av Quoted-Printable brukes i meldingsoverskrifter; se MIME#Encoded-Word .

Eksempel

Følgende eksempel er en fransk tekst (kodet i UTF-8), med en høy frekvens av bokstaver med diakritiske merker (for eksempel é ).

J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font=
 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 bient=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire il=
s te fabriquent pour te la vendre une =C3=A2me vulgaire.
   =E2=80=94=E2=80=89Antoine de Saint-Exup=C3=A9ry, Citadelle (1948)

Dette koder for følgende sitat:

J'interdis aux marchands de vanter trop leurs 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.

-  Antoine de Saint-Exupéry , Citadelle (1948)

Se også

Merknader

  1. ^ Dette innebærer at en ASCII -kompatibel koding brukes. En QP-kodet tekst i f.eks. EBCDIC ville selvfølgelig ikke være lesbar.
  2. ^ Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. November 1996. RFC 2045 # 6.7 Sitert-utskrivbar innhold-overføring-koding , del "(4) (Line Breaks)". Hentet 18. mars 2013.

Eksterne linker

  • RFC  1521 (foreldet)
  • RFC  2045 (MIME)