Problème d'affichage de données Arabe

Fermé
mstr - 2 juin 2012 à 05:28
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 6 juin 2012 à 08:34
Bonjour,
Éditer


salut tout le monde,j'ai un problème d'affichage de données stocker en arabe dans une table avec Mysql encodé en "utf8_unicode_ci" (la table et les champs texte).
mais quand j'essaie de les afficher dans une page php,le navigateur m'affiche "????".
j'ai essayé beaucoup de solutions proposé sur internet mais je n'arrive pas encore à résoudre le problème.

la balise meta de ma page php:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

la connexion à la base de données:
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=teest', 'root', '', $pdo_options);

merci .

A voir également:

1 réponse

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
6 juin 2012 à 08:34
Bonjour,

Vous utilisez PDO, qui est une virtualisation de mysql ou mysqli. Pour bien gérer toute la chaîne des données en UTF8, il faut faire deux requêtes SQL d'ouverture à la base de données:

function connect() {
    $connection = mysql_connect($host,$user,$password);
    $db_selected = mysql_select_db($base, $connection);
    if (!$db_selected) {
        echo 'Impossible d\'utiliser la base : ' . mysql_error();
        return;
    }
    $dbh = $db_selected;
    // si encodage UTF-8 des données de la base, sinon mettre cette ligne en commentaire
    mysql_query("SET NAMES 'utf8'");
}


en gras celle qu'il ne faut pas oublier

Tout est expliqué ici, à vous d'adapter à PDO:
https://html5.immo-scope.com/article/general_basedeDonneesFullUTF8

A+
0