26

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

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

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

助けてください !!!

4

1 に答える 1

51

次のクエリで 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");

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

于 2012-11-18T10:45:29.913 に答える