Breve vademecum all’uso dei charset UTF-8 con MySQL.

Nell’articolo pubblicato sabato scorso dal titolo “Possibili problemi con Latin1” manca un aspetto fondamentale da ricordare una volta convertito il proprio database MySQL e i files del proprio sito dal charset ISO-8859-1 a UTF-8.

MySQL tende infatti ad aprire una connessione con il proprio server utilizzando il charset latin1 (ISO-8859-1) fintanto che non lo si convince del contrario; questo potrebbe creare dei spiacevoli problemi durante la visualizzazione dei testi delle pagine, in particolar modo di quelli che presentano al loro interno caratteri speciali quali gli accenti; per evitare che ciò accada è consigliato ricordare a MySQL di utilizzare una connessione in UTF-8 richiamando la funzione mysql_set_charset(), nel caso utilizziate le vecchie librerie MySQL, oppure mysqli::set_charset() qualora si utilizzino le nuove librerie MySQLi

// Connessione al DB
$db = mysql_connect('localhost', 'myuser', 'mypassword') or
die('Problemi di connessione al database remoto');
mysql_set_charset('utf8', $db);
mysql_select_db('mydb');

// Esecuzione delle query
mysql_query('SELECT * FROM users WHERE 1', $db);
...

oppure

// Connessione al DB
$db = new MySQLi('localhost', 'myuser', 'mypassword', 'mydb') or
die('Problemi di connessione al database remoto');
$db->set_charset('utf8');

//Esecuzione della query
$rs = $db->query('SELECT * FROM users WHERE 1');

Così facendo si avranno alla sorgente i dati memorizzati in UTF-8 (nel DB), i files HTML e/o PHP codificati in UTF-8 e la connessione tra il client e il server MySQL avverrà anch’essa in UTF-8, garantendo la correttezza nella gestione e nella visualizzazione delle informazioni gestite.


Tags: , , , ,

Browse Timeline


Comments are closed.


© Copyright 2009 EXIT4web.net di Bigon Luca
    Via Tozzi, 7 - 36020 Pove del Grappa (VI) - Ph. 392.8613907  Fx. 0424 279931  eM. info@exit4web.net  pIVA. 03161050244