Per visualizzare correttamente gli accenti sulle proprie pagine web, la sola soluzione è quella che consiste nell'utilizzare UTF8. Vediamo come usare i caratteri accentati e UTF 8 su HTML e PHP.
I file (.php e .html) dei propri siti devono essere codificati in UTF8 (di preferenza senza BOM). Per fare questo, potrà utilizzare il proprio editor di testo preferito (o il proprio IDE).
Ad esempio: per Notepad++, entrare nel menu Formato, codifica in UTF-8 (senza Bom). Dreamweaver: Modifica, Proprietà della pagina, Titolo/codifica. Aptana: Modifica > Set Encoding. Notepad (Blocco Note Windows): File, Salva come nome, poi selezionare UTF-8 nella lista Codifica. PhpDesigner: entrare su File, Codifica del file, e poi selezionare UTF-8 dalla lista. PhpEdit: nella barra delle attività selezionare UTF-8 senza BOM nella lista. Infine, per UltraEdit, entrare in File, Conversioni, ASCII verso UTF-8.
In PDO, per esempio, si potrà specificare la codifica durante la connessione, aggiungendo il parametro charset:
try{ $db =new PDO('mysql:host=localhost; dbname=mydb; charset=utf8', 'user', 'password'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Error : ' . $e->getMessage()); }
Su MySQLi si utilizzeranno le istruzioni:
//Modo OOP (programmazione orientata agli oggetti) $link->set_charset("utf8") // Modo programmazione procedurale mysqli_set_charset($link, "utf8")
$link rappresentando la connessione.
Questa dichiarazione è fatta nell’header della pagina HTML, nel tag HEAD è possibile utilizzare, ad esempio:
meta http-equiv="Content-Type" content=\"text/html; charset=UTF-8\"
o (in HTML5)
meta charset="UTF-8"
Mentre in PHP si potrà utilizzare l’istruzione:
header( 'content-type: text/html; charset=utf-8' );
Spesso in un database MySQL si utilizzerà la codifica utf8-general-ci o utf8_unicode_ci.
Nota Bene: se si sono già effettuate delle inserzioni nel data base, controllare che i caratteri accentati appaiano correttamente nelle tabelle.
Non dimenticare di rimuovere tutte le istruzioni utf8_encode e utf8_decode se sono state utilizzate nei propri script.
Foto: © Unsplash.