[RESOLU] Probléme de langue (losange noir avec ?)

Eléphant du PHP | 61 Messages

27 janv. 2015, 11:54

Bonjour voici mon probléme :

Aprés avoir chargé mes élements dans un select, via une base de donnée, j'ai ce probléme avec les accents : un losange noir avec un ? dedans...

Mon fichier est codé comme cela :
<head>
<meta charset="UTF-8" />
<html lang="fr">
et ma table est écrite en utf8_general_ci...

Que faire ?

Cordialement

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 janv. 2015, 12:24

Bonjour Incognito,

C'est peut être ton serveur qui ne renvoie pas le bon charset en entête HTTP, pour forcer utf8, voila ce qu'il faut ajouter au tout début de ton fichier PHP :
<?php
header('Content-type: text/html; charset=utf-8');
?>

Cela peut venir aussi du dialogue avec MySQL qui ne s'effectue pas en UTF8, du coup, il faut ajouter lors de la connexion ta bdd mysql_set_charset('utf8'); ou si tu utilises mysqli : mysqli_set_charset('utf8');
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

27 janv. 2015, 12:35

Merci, voila la solution:
$bdd=new PDO('mysql:host=localhost;dbname=weather','root','');
					$bdd->exec("SET NAMES 'UTF8'");