UTF-8 per tutti, lasciatevi travolgere!

| 1 Comment

E` ormai un bel po' di tempo che, per tutto il web (e non solo) programming che faccio, ho deciso di abbandonare ISO-8859-1, ISO-8859-15, US-ASCII e tutti gli altri set di caratteri monobyte in favore di UTF-8, la fantastica implementazione di Unicode che permette di accedere a tutti i caratteri Unicode utilizzando un solo charset. Questa improvvisa mossa mi è costata alcune rappresaglie da parte dei miei collaboratori, che UTF-8 ancora non lo utilizzano.

Inizialmente avevo preso questa apparentemente pazzesca decisione per necessità: uno dei sistemi di templating che utilizzo di più mi dava seri problemi con utf8 (sì, insomma, ISO-8859-1). Il passaggio a UTF-8 non è stato per me indolore, anche a causa della bizzarra (ma in effetti forse migliore possibile) gestione dei charset di Perl 5.8: di colpo mi sono visto costretto a scrivere tutto, dal codice ai template ai contenuti dei database, in UTF-8. Dopo alcuni mesi, ciò che mi sento di dire è: tutti i charset monobyte devono morire. Con UTF-8 potete scrivere con caratteri latini, cirillici, giapponesi anche contemporaneamente, senza preoccuparvi di chi vedrà il vostro file: chiunque, se il suo browser/altro programma supporterà UTF-8 (e tutti i browser lo supportano) ed avrà installato i necessari font, sarà in grado di visualizzare ciò che avete scritto.

In sintesi, UTF-8 secondo me è la salvezza per molti mali relativi alla gestione di qualsiasi tipo di dato testuale in qualsiasi lingua. E, soprattutto, rimane compatibile alla perfezione con il set US-ASCII (inglese americano). La migrazione è infatti in gran parte trasparente: un documento US-ASCII è già di fatto anche UTF-8. Un documento ISO-8859-1 lo è quasi: bisogna convertire tutte le lettere accentate e gli altri caratteri sopra l'ASCII 127, che in UTF-8 vengono rappresentati con 2 (o più) byte.

UTF-8 codifica i caratteri utilizzando un numero variabile di byte: da 1 a 6. In questo modo si riescono a rappresentare tutti i caratteri codificati dal progetto Unicode, senza però sprecare troppo spazio: per i caratteri di US-ASCII (quelli in assoluto più utilizzati nell'Occidente e - in molti casi - anche nel resto del mondo) basta sempre un byte, e per i caratteri ISO-8859-1 ne bastano sempre 2. La geniale idea di UTF-8 è venuta nel Settembre 1992 a Ken Thompson: la sera del 2 stava cenando in un ristorantino del New Jersey e, come nei film, gli è balenato alla mente il concetto di UTF-8 e l'ha disegnato sulla tovaglia. Grazie, Ken!

Per chi è interessato ad approfondire l'argomento, ecco un paio di link interessanti (in inglese). Se ne troverò altri, li aggiungerò.

  • UTF-8 and Unicode FAQ - spiega bene-bene Unicode, UCS, UTF-8 ed un sacco di altre sigle più o meno oscure. E` "tarato" per il mondo Unix/Linux, ma la maggior parte delle informazioni in esso contenute sono valide in generale.
  • Unicode project, tutti i caratteri codificati finora e tutte le news ed eventi sull'Unicode.

Buon UTF-8 a tutti!

Ah, sì, lo so: questo blog e le mie pagine personali sono ancora in utf8. Ancora un attimino, eh! ;-)

Aggiornamento 15 Novembre 2004: il blog e la mia home page sono ora in UTF-8.

1 Comment

eh peccato che il mio lettore mp3 (trasformato in ebook) supporti solo iso-8859-1 -____-

Leave a comment

About this Entry

This page contains a single entry by Michele Beltrame published on October 22, 2004 12:13 AM.

Islanda per squattrinati was the previous entry in this blog.

The silence here is deafening is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.14-en