2012-11-18 16 views
12

Eventuali duplicati:
Save Data in Arabic in MySQL databaseLa lingua araba in php/mysql appare "????" punti interrogativi in ​​html

Ho un problema con il recupero dei dati arabi da database MySQL utilizzando PHP, esso appare come punti interrogativi "????" in HTML:

  1. Ho un database con "utf8_general_ci" come confronto.
  2. Il database contiene alcuni dati in lingua araba.
  3. La codifica HTML è "UTF-8".
  4. Quando ho provato a recuperare i dati in HTML, appare come "?????".

Si prega di aiuto !!!

+5

Dopo essersi connessi al database, eseguire questa query '" SET NAMES utf8 "' prima di recuperare i dati. – Aziz

+0

Esistono passaggi in cui le cose _can_ vanno male se qualsiasi componente della catena di strumenti è configurato _non_ per usare UTF-8. Quindi alla fine dovrai controllare tutte le stazioni in cui viaggiano i dati per trovare quel luogo in cui la codifica viene improvvisamente interrotta. – arkascha

+0

Grazie @Aziz .. ha funzionato come fascino :) – CairoCoder

risposta

28

è necessario impostare charset nel primo contatto con mysql da questa query:

SET CHARACTER SET utf8 

ad esempio nelle funzioni 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'); 

e DOP del campione:

$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"); 

questa necessità azione prima di inserire e prima di selezionare.

+1

Grazie @Mahdi Parsa .. ha funzionato :) – CairoCoder

Problemi correlati