web-dev-qa-db-ja.com

php / mysqlのアラビア語が「????」と表示されるHTMLの疑問符

可能性のある複製:
MySQLデータベースにアラビア語でデータを保存

PHPを使用してMYSQLデータベースからアラビア語のデータを取得する際に問題があり、疑問符「????」として表示されますHTML:

  1. 照合として「utf8_general_ci」を使用したデータベースがあります。
  2. データベースにはアラビア語のデータが含まれています。
  3. HTMLエンコーディングは「UTF-8」です。
  4. HTMLでデータを取得しようとすると、「?????」と表示されます。

助けてください !!!

21
CairoCoder

次のクエリで最初にmysqlに接続するときに文字セットを設定する必要があります。

SET CHARACTER SET utf8

たとえば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'); 

およびPDOサンプル:

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

このアクションは、挿入前と選択前に必要です。

43
A1Gard