2014-09-09 5 views
2

je n'ai pas trouvé la réponse à cette navigation question autour donc je suppose que lui demander est ok ...PHP et Mysql caractères spéciaux

Mon code php lit de mon Mysql Database une chaîne et l'imprime, est ici la Code

$sql2=mysql_query("SELECT * FROM Corsi WHERE Nome='$Ln_1[Ln_1]'"); 
$Ln_1_a = mysql_fetch_array($sql2); 
$Ln_1_descr = $Ln_1_a[5]; 

Mais les caractères spéciaux, tels que 'è' 'à' 'ò', etc., sont imprimés comme ''. Mon Encodage Mysql est utf8 et aussi dans mon entête html j'ai l'encodage utf8, alors quel est le problème?

Merci à l'avance

Répondre

2

Tout d'abord, au début de votre connexion MySQL après la sélection de base de données, vous devez mettre cette requête:

mysql_query('SET NAMES utf8'); 

Ensuite, assurez, votre page a l'encodage UTF-8 (je suppose que vous utilisez HTML, il devrait ressembler à:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

) et aussi votre fichier de script doit être enregistré dans le codage UTF8.

Mais je dois rappeler mysql_* fonctions sont obsolètes et vous devriez utiliser mysqli_* ou PDO à la place avec prepared statements en raison de la sécurité de vos requêtes.

+0

Merci beaucoup! Résolu! – user3423076

+1

+1 pour le PDO, n'utilisez pas mysql_ –

1

Try (après mysql_connect) font mysql_query('SET NAMES utf8'). Et vérifiez aussi, si la police supporte ces caractères.

0

Utilisez la fonction utf8_decode

comme celui-ci

$Ln_1_descr = utf8_decode($Ln_1_a[5]); 
0

Utilisez htmlspecialchars($yourvariable, ENT_NOQUOTES, "UTF-8")

Vérifiez également votre fichier configurer MySQL a:

[client] default-character-set = UTF -8

[mysql] default-character-set = UTF-8

De même, utf8_encode() et utf8_decode() fonctionneraient aussi pour vous.