📁
Forum per Webmaster
Glossario

Encoding

Che cos’è l’encoding usato per codificare i testi

Qualsiasi tipo di computer memorizza i testi scomponendoli in caratteri, il tal modo un qualsiasi testo non è nient’altro che una sequenza di caratteri detta tecnicamente stringa. Ogni carattere contenuto in una stringa occupa una piccola porzione di memoria nel calcolatore.
Tecnicamente, la memoria del calcolatore è formata da celle che non contengono ne simboli e ne lettere, ognuna di queste celle che viene definita byte è formata da otto valori – detti bit – ognuno dei quali può assumere due stai, che per convenzione vengono rappresentati con i numero 0 e 1, tale convenzione è anche d’aiuto alla matematica binaria su cui si basato tutti i calcolatori.
Ma se la memoria del computer può contenere e quindi memorizzare solamente i numeri 0 e 1, come è possibile inserirvi dei testi? La risposta è semplice, si utilizza una convenzione per assegnate ad una sequenza di 0 e 1, un determinato carattere. Le convenzioni che si possono adottare sono teoricamente infinite, quelle che si sono imposte come standard hanno un loro proprio nome di encoding che le identifica a livello internazionale, lo standard più accreditato nella prima era informatica fu l’ASCII, il quale assegnava a determinate sequenza di 8 bit, un determinato simbolo o lettera dell’alfabeto latino.
L’ASCII, limitato dal numero massimo di combinazioni che si possono ottenere usando solamente otto bit, non può rappresentare tutti gli alfabeti del mondo, ragion per cui sono nati altri sistemi di encoding che utilizzando più memoria per poter rappresentare un maggior numero di alfabeti e simboli.
Quando si parla della trasformazione di testi in sequenze bytes in modo da poter essere memorizzate o standardizzate, si parla di processo di encoding, mentre invece il processo inverso che consiste nella lettura del contenuto di una memoria trasformandolo in caratteri (e quindi testo), è conosciuto con il termine di processo di decoding.
Per comodità quasi tutti i sistemi di encoding non criptati, utilizzano in qualche modo la struttura dell’ASCII ampliandola e a volte rigirandola.
Gli algoritmi di encoding più evoluti, anziché basarsi su una convenzione che assegna direttamente ad ogni carattere ad una determinata sequenza di bit, assegnano ogni carattere ad una determinata sequenza di strutture più complesse, come per esempio può essere a sua volta il sistema l’ASCII o non di rado la raffigurazione esadecimale dei bytes, ecc, inquanto tali rappresentazioni sono in un qualche modo umanamente comprensibili.
Nell’ambito della programmazione web, i sistemi di encoding adottati, permettono addirittura di “spezzettare” la struttura di testo in più elementi: L’UrlEncoding permette la trasmissione di request da browser a server inviando una serie di informazioni spezzettate in coppie chiave/valore. L’html encoding, permette la divisione del testo che forma la pagina in tag, ovvero in elementi distinti. I tag vengono per convenzione delimitati dai simboli < e >, ciò farebbe presumere che all’interno di un testo html o xhtml, non sia possibile raffigurare tali simboli in quanto verrebbero scambiati per i caratteri delimitatori dei tag, in realtà non è cosi dato che l’htmlencoding considera il carattere < come la sequenza dei caratteri ASCII &lt; e il carattere > e raffigurato dalla sequenza &gt;.
Gli encoding utilizzati nei formati html e xml, sono studiati appositamente per distinguere i caratteri e i simboli impiegati come testo da quelli funzionali al linguaggio di markup.
Di sistemi di codifica ne esistono di innumerevoli, ognuno dai quali è più specializzato per un determinato rispetto ad altri.

Argomenti nella stessa categoria