UTF-7: diferència entre les revisions

Contingut suprimit Contingut afegit
Pàgina nova, amb el contingut: « ''' UTF-7 ''' (7 - bit Unicode Transformation Format) és una codificació de caràcters de longitud variable que va ser proposada per representar text...».
 
Cap resum de modificació
Línia 1:
''' UTF-7 ''' (7 - [[bit]] [['''Unicode Transformation Format]]''') és una codificació de caràcters de longitud variable que va ser proposada per representar text codificat amb [[Unicode]] utilitzant un flux de caràcters [[ASCII]], per ser usat, per exemple en missatges de [[correu electrònic]] de [[Internet]]. Malgrat el nom, UTF-7 no és un format de transformació i no forma part de l'estàndard [[Unicode]].
 
 
''' UTF-7 ''' (7 - [[bit]] [[Unicode Transformation Format]]) és una codificació de caràcters de longitud variable que va ser proposada per representar text codificat amb [[Unicode]] utilitzant un flux de caràcters [[ASCII]], per ser usat, per exemple en missatges de [[correu electrònic]] de [[Internet]]. Malgrat el nom, UTF-7 no és un format de transformació i no forma part de l'estàndard [[Unicode]].
 
El protocol bàsic de transport de missatges de [[correu electrònic]] a [[Internet]], [[SMTP]] especifica que el format de transmissió és [[ASCII]] i no permet valors de bytes fora d'aquest rang. [[MIME]] proveeix una manera d'especificar un [[conjunt de caràcters]], permetent l'ús de diferents conjunts de caràcters incloent [[UTF-8]] i [[UTF-16]]. No obstant això, la infraestructura de transmissió subjacent encara no garanteix suport per a 8 bits i per tant és necessari codificar el contingut per poder transmetre-ho. Per desgràcia, [[base64]] té el problema de fer illegibles fins i tot els caràcters [[ASCII]] i la combinació de [[UTF-8]] amb [[Quoted-Printable]] produeix un format molt ineficient ja que requereixen entre 6 a 9 bytes per cada caràcter no [[ASCII]] dins de [[Basic Multilingual Plane|BMP]] i 12 bytes per a caràcters fora de [[Basic Multilingual Plane|BMP]].
Linha 17 ⟶ 15:
Alguns conjunts de caràcters poden ser representats directament amb bytes únics de [[ASCII]]. El primer conjunt és conegut com "caràcters directes" i conté tots els 62 caràcters [[Alfanumèric|alfanumèrics]] i 9 símbols: <code> '(), -./: </Code>. Els caràcters directes són considerats molt segurs per a ser inclosos literalment. L'altre conjunt principal, conegut com "caràcters directes opcionals", conté tots els altres caràcters imprimibles en el rang{{O+}}0020-U+007E excepte <code> # \+</code> i el caràcter espai. Usant els caràcters directes opcionals es redueix la mida i es millora la llegibilitat per als [[Homo_Sapiens|éssers humans]], però, també s'incrementen les possibilitats d'errors a conseqüència d'[[Gateway_ (informàtica)|portes d'enllaç]] de correu mal configurades, a més, pot requerir caràcters de ECAP extra quan es combina amb [[MIME # Encoded-Word|encoded word]].
 
L''' espai '', la '' tabulació '', l'el '' retorn de carro '' i el caràcter de '' nova línia '' poden ser usats també directament com bytes simples d'[[ASCII]]. No obstant això, si el text codificat seràha de ser usat en un [[correu electrònic]], cal anar amb compte a garantir que aquests caràcters siguin usats de manera que no requereixin codificació addicional perquè siguin adequats per a aquestaquesta fi.
 
Altres caràcters han de ser codificats en [[UTF-16]] i després aen [[base64 # UTF-7|base64 modificat]]. L'inici d'aquests blocs de ''base64 modificat'', que van codificats en [[UTF-16]] està indicats'indica peramb un símbol <code>+</code>. El final s'indica peramb qualsevol caràcter que no pertanyi al conjunt de [[base64 # UTF-7|base64 modificat]]. Com a cas especial, si el caràcter després del bloc [[base64 # UTF-7|base64 modificat]]s és un <code> - </code> llavors aquest éses consumitconsumeix. Com un altre cas especial, els caràcters literals <code>+</code> '' poden '' ser codificats com <code>+- </code> i han de ser codificats usant [[base64 # UTF-7|base64 modificat]] també.
 
== Exemples ==
Linha 25 ⟶ 23:
* "<tt> Hola Món ! </tt>" és codificat com "<tt> Hola Món ! </tt>"
* "<tt> 1" 1 = 2 </tt> "és codificat com" <tt> 1+- 1 = 2 </tt>"
* "<tt> £ 1 </tt>" és codificat com "<tt>+AKM-1 </tt> ". El codi [[Unicode]] per al símbol de lliura és O+00A3 (el qual és <tt> 00A3 </tt> <sub> 16 </sub> en UTF-16), es converteix en [[Modified Base64]] com es mostra a la taula a continuació. DuesDos [[bit]]s queden fora i són emplenats aamb 0's.
 
{|Border = "1" cellpadding = "5" cellspacing = "0"
Linha 50 ⟶ 48:
== Algorisme per a codificar i descodificar UTF-7 manualment ==
=== Codificar ===
Primerament un codificador ha de decidir quins caràcters representar directament aen [[ASCII]] i quins posar en blocs de caràcters [[unicode]]. Un codificat simple pot codificar tots els caràcters que consideri segur codificar directament. No obstant això, el cost de construir un bloc unicode per representar un únic caràcter i després obtenir-lo de tornada és de 3 a 3 ⅔ bytes, és a dir més que els 2 ⅔ bytes necessaris per representar aquest caràcter com a part d'una seqüència [[unicode]].
 
Una vegada que les seqüències [[unicode]] s'han decidit, aquestes han de ser codificades usant el següent procediment i després envoltades amb els delimitadors apropiats
Linha 70 ⟶ 68:
 
=== Decodificar ===
Primerament el missatge ha de ser separat en: ''text pla [[ASCII]] i blocs [[unicode]]'' com es va esmentar en la secció de [[# Descripció|descripció]], un cop fet això els blocs [[unicode]] han de ser decodificadosdecodificats usant el següent procediment (s'utilitza el resultat de la codificació a la [[# Codificar|secció anterior]])
 
# Expressar cada codi [[Base64]] com la seqüència de [[bit]]s que representa: <br/> <tt> AKMgIA → 000.000 001.010 001.100 100.000 001.000 000.000 </tt>