Caratteri accentati e UTF 8 su HTML/PHP

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.

Controllare la codifica dei file

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.

Configurare la connessione al database

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.

Come dichiarare la codifica nella propria pagina

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' );

Verificare che i propri data base siano in UTF8

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.

Utf8_encode/UTF8_decode

Non dimenticare di rimuovere tutte le istruzioni utf8_encode e utf8_decode se sono state utilizzate nei propri script.

Foto: © Unsplash.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Potrebbe anche interessarti
Il documento intitolato « Caratteri accentati e UTF 8 su HTML/PHP » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.