2012-11-18 11 views
12

可能性の重複:
Save Data in Arabic in MySQL databasephp/mysqlのアラビア語が「????」と表示されます問題のhtml内のマーク

私はPHPを使用してMySQLデータベースからアラビア語のデータを取り出すに問題がある、それは疑問符として表示されます "????" HTML内:

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

助けてください!

+5

データベースに接続した後、このクエリを実行してデータを取得する前に "SET NAMES utf8"を実行してください。 – Aziz

+0

ツールチェインのいずれかのコンポーネントがUTF-8を使用するように構成されていない場合、_can_が間違ってしまういくつかのステップがあります。したがって、最後に、エンコードが突然壊れた場所を見つけるために、データが流れるすべてのステーションを確認する必要があります。 – arkascha

+0

ありがとう@Aziz ..それは魅力のように働いた:) – CairoCoder

答えて

28

あなたが最初にこのクエリでのMySQLとの接続に文字セットを設定する必要がありますmysqliの機能、例えば

SET CHARACTER SET utf8 

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

このアクションが必要挿入前と選択前。

+1

ありがとう@Mahdi Parsa ..それは働いた:) – CairoCoder

関連する問題