2011-12-10 17 views
1

私はmysqlデータベースに照合 "utf8_unicode_ci"フィールド "scroller"を持っています。 アラビア語のテキストをこのフィールドに保存しようとしています。mysql php多言語アラビア語とヒンディー

私はそれを直接mysqlに挿入します。

以下のコードを使用して、フィールドを編集しようとしました。私はそれをエコーするとき、それは正しく表示されます。しかし、それが "???????:89 ?????? ???????????????????????ここで、データベースに格納されます。

echo "<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"; 
require 'config.php'; 
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8'); 
$scroller=htmlentities($_POST['scroller'],ENT_QUOTES,"UTF-8"); 
mb_internal_encoding("UTF-8"); 
echo $scroller; 
    $sql="UPDATE arab_scroller SET scroller='$scroller' WHERE page='$id1' "; 
    if (!mysql_query($sql,$con)) 
     { 
      die('Error: ' . mysql_error()); 
     } 
     header('Location:index.php'); 

私はちょうどトルコと同じことをテストし

+0

あなたが投稿しているものが正しく機能していることを確認しましたか?アラビア語のテキストをiso8559形式に貼り付けることは、ブラウザから出る前に、それをマングルすることになります。 –

答えて

1

を私を助けてください。テーブルのデフォルトの照合順序がUTF8でない場合は、この種の問題が発生する可能性があります。

この最初の試してください:

ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

をし、再度コードを実行してみてください。

はまた、SET NAMESの代わりにmysql_set_charsetを使用することをお勧めし: http://php.net/manual/en/function.mysql-set-charset.php

+0

ありがとうございます。問題は解決されました。 –

0

あなたはちょうどそれがラテン取るデフォルトでは、テーブルの照合順序utf8_general_ciを変更します。

OR

は、このクエリを実行します。

ALTER TABLE tbl_name内のデフォルトの文字セットUTF8のCOLLATE utf8_general_ci;

これは本当に私の作品です。