Site icon Noir Solutions

Eliminare caratteri accentati in PHP Mysql con la codifica ISO UTF-8

Vi parliamo in questo articolo di quello che accade nei risultati a video quando visualizzate una codifica al posto di un ‘altra in PHP + Mysql, tipicamente noto come i caratteri strani o accentati. Come detto sopra questo solitamente accade abbastanza sovente quanto copia incolliamo sul nostro database  o mettiamo da input dei valori codificati latina e li rivisualizziamo come UTF-8. Il problema è molto comune , una soluzione abbastanza arrangiata è quella di ricorrere a str_replace , ossia sostituire i caratteri spuri con altri caratteri , ma sicuramente non è la soluzione più elegante e nemmeno la più corretta in quanto si finisce col perdere dei caratteri ed è un processo che impiega del tempo e delle risorse. La soluzione corretta è quella invece di ricorrere alle seguenti funzioni. Supponiamo di dovere immettere un testo in input su un db Mysql con php avendo in entrata dei caratteri in codfica latin qualcosa e di volere in uscita UTF-8 unicode ISO, quindi ci troviamo nella seguente situazione

 

$db_host = "host"; 
$db_user = "username"; $db_password = "password";
$database = "nome_database"; $db = mysql_connect($db_host, $db_user, $db_password); 
if ($db == FALSE) die ("Errore connessione db"); 

mysql_query("SET NAMES 'utf8';");

Come potete vedere la funzione sottolineata in rosso effettua automaticamente il mapping desiderato. Così i dati che troveremo inseriti nel database saranno già nel formato corretto quando andremo a fare la Select. Oppure un’altra funzione molto utilizzata in questo caso è la seguente

$string=iconv("UTF-8", "ISO-8859-1", $string);

Vediamo adesso cosa accade in lettura dei dati immessi nel database e visualizzati a video. Supponiamo che tali dati che abbiamo immesso siano in codifica latin, ossia che il programmatore non abbia effettuato il procedimento descritto sopra.

In questo caso potete utilizzare la funzione

$string=iconv("UTF-8//IGNORE", "ISO-8859-1", $string);

Come potete vedere è comparsa la funzione di errore che indica alla funzione di ignorare al codice eventuali errori che possono comparire a video e quindi ottenenere il risultato desiderato

Exit mobile version