La codificació de caràcters és el mètode que permet convertir un caràcter d'un llenguatge natural (alfabet o sil·labari) en un símbol d'un altre sistema de representació, com un nombre o una seqüència de polsos elèctrics en un sistema electrònic, aplicant normes o regles de codificació.
Normes de codificació Defineixen la forma en què es codifica un caràcter donat en un símbol en un altre sistema de representació. Exemples d'això són el codi Morse, el codi BCD (6-bit), la norma ASCII o la norma UTF-8, entre d'altres.
ASCII Per estar íntimament lligat a l'octet (i per tant als nombres enters que van del 0 al 127), el problema que presenta és que no pot codificar més de 128 símbols diferents (128 és el nombre total de diferents configuracions que es poden aconseguir amb 7 dígits binaris o digitals (0.000.000 , 0.000.001,..., 1.111.111 ), usant el vuitè dígit de cada octet (bit o dígit de paritat) per detectar algun error de transmissió. Una quota de 128 és suficient per incloure majúscules i minúscules de l'alfabet anglès, a més de xifres, puntuació, i alguns "caràcters de control" (per exemple, un que indica a una impressora que passi al full següent), però l'ASCII no inclou ni els caràcters accentuats ni el punt volat que es fa servir en català, ni tants altres símbols (signes matemàtics, lletres gregues, lletres llatines amb altres diacrítics, etc.) que són necessaris en molts contextos.
ASCII estès A causa de les limitacions de l'ASCII es van definir diversos codis de caràcters de 8 bits, entre ells l'ASCII estès. Tanmateix, el problema d'aquests codis de 8 bits és que cada un es defineix per un conjunt de llengües amb escriptures semblants i, per tant, no donen una solució unificada a la codificació de totes les llengües del món. És a dir, no són suficients 8 bits per codificar tots els alfabets i escriptures del món.
Unicode Com a solució a aquests problemes, des de 1991 s'ha acordat internacionalment utilitzar la norma Unicode, que és una gran taula, que actualment assigna un codi a cada un dels més de cinquanta mil símbols que conté, els quals abasten tots els alfabets europeus, ideogrames xinesos, japonesos, coreans, moltes altres formes d'escriptura, i més d'un miler de símbols especials.
UTF-8
És una norma de transmissió utilitzada juntament amb la norma de codificació Unicode. Utilitzades en conjunt, funcionen de la següent manera:
Unicode assigna els enters del 0 al 127 (un total de 128) a exactament els mateixos caràcters que ASCII UTF-8 empaqueta qualsevol enter del 0 al 127 en un octet "a l'antiga" però amb el vuitè dígit sempre a zero, ja que actualment el bit de paritat ja no es fa servir per a detecció d'errors Atès que la taula d'Unicode és tan gran, la majoria dels seus símbols estan assignats a enters majors que 127 (codis que, en conseqüència, necessiten més de set dígits per a la seva representació binària). En tots aquests casos, UTF-8 envia al començament de la representació binària del codi en qüestió en un primer octet amb dígit de paritat = 1 El receptor d'aquest missatge, interpreta aquest dígit en 1 com a senyal que el que està transmès és un codi que no cap en 7 dígits binaris i, per tant, determina que el símbol complet no es podrà conèixer fins que no es llegeixi el següent octet (o fins i tot el tercer octet que segueix, si la codificació requerís tres octets). En el pitjor dels casos, potser arribi a ser necessari llegir sis octets consecutius per determinar un símbol codificat amb un número prou alt.
Mapes de caràcters
Sovint els sistemes operatius, en especial Windows, utilitzen mapes de caràcters o pàgines de codi on barregen diverses normes.
Normes de Transmissió Les normes de transmissió tenen com a objectiu definir la manera com els caràcters codificats (utilitzant les normes de codificació) es transmeten al canal de comunicacions (per exemple Internet)
Actualment, a Internet els missatges es transmeten en paquets que sempre consten d'un nombre enter d'octets, i la detecció d'errors ja no es fa amb el vuitè dígit de cada octet, sinó amb octets especials que automàticament s'agreguen a cada paquet. Les normes de transmissió es limiten a especificar una correspondència, reversible, entre codis (que representen caràcters), i seqüències d'octets (que han de ser transmesos en qualitat de dades).
Taules tipogràfiques Però, finalment, per al correu electrònic en xinès simplificat (per exemple) cal un detall important:
La taula que el Consorci Unicode publica per a ser llegida per humans, conté una representació gràfica o descripció, de cada caràcter inclòs fins aquell moment, però, els sistemes de visualització de documents, per poder funcionar, requereixen taules de tipografia, que associen un glif (dibuix) a cada caràcter que abasten, i passa que hi ha moltíssimes taules de tipografia, amb noms com Arial o Times, que dibuixen una mateixa lletra a base de matrius diferents i en diferents estils ("A" o "A"), però la gran majoria de les famílies de tipus d'impremta contenen només un petit subconjunt de tots els caràcters Unicode. Per aquest motiu, per llegir pàgines amb caràcters asiàtics, per exemple, no n'hi ha prou que el visualitzador usat "accepti" la codificació Unicode, sinó que, a més, l'ordinador ha de tenir instal·lada una taula tipogràfica prou extensa.
Normes comunes de codificació de caràcters ISO 646 BCD BCD (6-bit) ASCII EBCDIC CP930 ISO 8859: ISO 8859-1 Europa occidental ISO 8859-2 Europa occidental i Centreeuropa ISO 8859-3 Europa occidental i Europa del Sud ISO 8859-4 Europa occidental i països bàltics (lituà, estonià i lapó) ISO 8859-5 alfabet ciríl·lic ISO 8859-6 àrab ISO 8859-7 grec ISO 8859-8 Hebreu ISO 8859-9 Europa occidental amb el joc de caràcters turc ISO 8859-10 Europa occidental amb jocs de caràcters nòrdics, incloent islandès ISO 8859-11 tailandès ISO 8859-13 llengües bàltiques i polonès ISO 8859-14 llengües cèltiques (gaèlic irlandès, escocès, gal·lès) ISO 8859-15 Afegeix el símbol d'Euro i altres a ISO 8859-1 ISO 8859-16 llengües centreeuropees (polonès, txec, eslovac, eslovè, hongarès, albanès, romanès, alemany i italià) CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP863, CP865, CP866, CP869 Jocs de caràcters de Windows: Windows-1250 llengües centreeuropees que utilitzen un alfabet llatí, (polonès, txec, eslovac, hongarès, eslovè, serbi, croat, romanès i albanès) Windows-1251 lfabets ciríl·lics Windows-1252 llengües occidentals Windows-1253 grec Windows-1254 turc Windows-1255 hebreu Windows-1256 àrab Windows-1257 llengües bàltiques Windows-1258 vietnamita Mac OS Roman KOI8-R, KOI8-U, KOI7 MIK Cork o T1 ISCII VISCII Big5 HKSCS Guobiao GB2312 GBK (Pàgina de codis 936 de Microsoft) GB18030 Shift JIS per al japonès (Pàgina de codis 932 de Microsoft) EUC-KR per al coreà (Pàgina de codis 932 de Microsoft) ISO-2022 i EUC per a jocs de caràcters CJK Unicode (i els seus subconjunts, com el Basic Multilingual Plane de 16 bits). Vegeu també UTF-8 i UTF-16. Ansel o ISO/IEC 6937
Codificació de caràcters del català MinúsculescaràcterISO-8859-1UTF-8UTF-16a0x610x610x000x61b0x620x620x000x62c0x630x630x000x63d0x640x640x000x64e0x650x650x000x65f0x660x660x000x66g0x670x670x000x67h0x680x680x000x68i0x690x690x000x69j0x6a0x6a0x000x6ak0x6b0x6b0x000x6bl0x6c0x6c0x000x6cm0x6d0x6d0x000x6dn0x6e0x6e0x000x6eo0x6f0x6f0x000x6fp0x700x700x000x70q0x710x710x000x71r0x720x720x000x72s0x730x730x000x73t0x740x740x000x74u0x750x750x000x75v0x760x760x000x76w0x770x770x000x77x0x780x780x000x78y0x790x790x000x79z0x7a0x7a0x000x7aMajúsculescaràcterISO-8859-1UTF-8UTF-16A0x410x410x000x41B0x420x420x000x42C0x430x430x000x43D0x440x440x000x44E0x450x450x000x45F0x460x460x000x46G0x470x470x000x47H0x480x480x000x48I0x490x490x000x49J0x4a0x4a0x000x4aK0x4b0x4b0x000x4bL0x4c0x4c0x000x4cM0x4d0x4d0x000x4dN0x4e0x4e0x000x4eO0x4f0x4f0x000x4fP0x500x500x000x50Q0x510x510x000x51R0x520x520x000x52S0x530x530x000x53T0x540x540x000x54U0x550x550x000x55V0x560x560x000x56W0x570x570x000x57X0x580x580x000x58Y0x590x590x000x59Z0x5a0x5a0x000x5aAccents i diacríticscaràcterISO-8859-1UTF-8UTF-16à0xe10xc30xa10x000xe1À0xc10xc30x810x000xc1è0xe80xc30x880x000xe8È0xc80xc30x880x000xc8é0xe90xc30xa90x000xe9É0xc90xc30x890x000xc9í0xed0xc30xad0x000xedÍ0xcd0xc30x8d0x000xcdï0xee0xc30x8e0x000xeeÏ0xce0xc30x8e0x000xceò0xf20xc30xb20x000xf2Ò0xd20xc30x920x000xd2ó0xf30xc30xb30x000xf3Ó0xd30xc30x930x000xd3Ú0xfa0xc30xba0x000xfaÚ0xda0xc30x9a0x000xdaÜ0xfc0xc30xbc0x000xfcÜ0xdc0xc30x9c0x000xdcç0xe70xc30x870x000xe7Ç0xc70xc30x870x000xc7 ñ 0xf1 0xc3 0xb1 0x00 0xf1 Ñ 0xd1 0xc3 0x91 0x00 0xd1·0xb70xc20xb70x000xb7
SímbolscaràcterISO-8859-1UTF-8UTF-16¿0xbf0xc20xbf0x000xbf?0x3f0x3f0x000x3f¡0xa10xc20xa10x000xa1!0x210x210x000x21
Vegeu també Bob Bemer
Notes
Referències
Bibliografia