Search code examples
phpmysqlencodearabichtml-encode

Arabic language in php/mysql appears "????" question marks in html


Possible Duplicate:
Save Data in Arabic in MySQL database

I have a problem with retrieving Arabic data from MYSQL database using PHP, it appears as question marks "????" in HTML:

  1. I have a database with "utf8_general_ci" as collation.
  2. The database contains some data in Arabic Language.
  3. The HTML encoding is "UTF-8".
  4. When I tried to retrieve the data in HTML, it appears as "?????".

Please Help !!!


Solution

  • you must set charset in first connect with mysql by this query:

    SET CHARACTER SET utf8
    

    for example in mysqli functions

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

    and PDO sample :

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

    this action need before insert and before select.