web-dev-qa-db-fra.com

La langue arabe en php / mysql apparaît "????" points d'interrogation en html

Duplicata possible:
Enregistrer les données en arabe dans la base de données MySQL

J'ai un problème avec la récupération des données arabes de la base de données MYSQL en utilisant PHP, elles apparaissent comme des points d'interrogation "????" en HTML:

  1. J'ai une base de données avec "utf8_general_ci" comme collation.
  2. La base de données contient des données en langue arabe.
  3. L'encodage HTML est "UTF-8".
  4. Lorsque j'ai essayé de récupérer les données en HTML, elles apparaissent comme "?????".

S'il vous plaît, aidez !!!

21
CairoCoder

vous devez définir charset dans la première connexion avec mysql par cette requête:

SET CHARACTER SET utf8

par exemple dans les fonctions mysqli

$MySQL_Handle = mysqli_connect(HOSTNAME,DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME) 
or die ( mysqli_error($MySQL_Handle) ); 

$sSQL= 'SET CHARACTER SET utf8'; 

mysqli_query($MySQL_Handle,$sSQL) 
or die ('Can\'t charset in DataBase'); 

et échantillon AOP:

$dbh = new PDO('mysql:Host=localhost;dbname=' . $DB_NAME, $DB_USER,
$DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"));
$dbh->exec("SET CHARACTER SET UTF8");

cette action doit être insérée et sélectionnée.

43
A1Gard