PHP e UTF-8 una possibile soluzione al problema dei caratteri accentati

Nel passaggio di dati da un sistema operativo all’altro, o da un database all’altro, può succedere che i carattari accentati vengano “maltrattati” passando dal carattere accentato ad un incomprensibile simbolo, spesso una specie di punto interrogativo su sfondo nero.

Vogliamo suggerire una possibile soluzione per l’accoppiata PHP e MySql, ossia per dati estratti da una tabella MySql.

Nel mio caso i dati presenti nelle tabelle provenivano da una importazione di un database Access.

Ci sono tre passi da compiere, uno sulla pagina HTML, un altro sul codice PHP e il terzo sul MySql.

Innanzi tutto mettiamo nell’head della pagina HTML il seguente codice:

Poi lavoriamo sul PHP inserendo all’inizio della pagina:

header('Content-type: text/html; charset=utf-8');

Gli header vanno gestiti con un po’ di attenzione in quanto se vengono posti dopo l’inzio dell’output potrebbero creare dei problemi.

La terza cosa da fare è quella di lanciare la seguete query prima di tutte le altre query MySql.

SET CHARACTER SET utf8

Per non scordarlo si consiglia di eseguire la query subito dopo aver stabilito la connessione:

mysql_query('SET CHARACTER SET utf8');

Qusta serie di operazioni dovrebbe risolvere il problema dei caratteri accentati con il PHP