0

私はmysqlテーブルメンバーを持っています。メンバー名にはアラビア語の名前があります。mname 照合セットはutf8_general_ci.

ユーザーがアラビア語の名前を入力すると、他の文字として db テーブルに格納されます。しかし、それを取得してサイトに表示すると、アラビア語のテキストとして正しく表示されます。データベーステーブルにアラビア語のテキストとして保存しないのはなぜですか?

私はこれを試しましたが、アラビア語のテキストではなく疑問符が表示されます...

1- MySQL charset: UTF-8 Unicode (utf8)

2- MySQL connection collation: utf8_general_ci

3- your database and table collations are set to: utf8_general_ci or utf8_unicode_ci

Then, add this code in your php script when you connect to db:

mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');

PHP コード:

シンプルなphpを使用。

$mname = $_POST['mname'];
$email = $_POST['email'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$age = $_POST['age'];
$city = $_POST['city'];
$country = $_POST['country'];



$query="insert into member (mname, email, password, gender, age, city, country) values ('$mname','$email','$password', '$gender', '$age','$city','$country')";
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8');
mysql_query($query);
4

1 に答える 1

-1

メタタグを設定することで問題になる可能性があります

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

また、列コレクションのタイプを設定する必要がutf8_general_ci.あります。テーブルとデータベースのタイプも同じであると見なされます。

また、次のような注意点もあります

o php を使用して mysql データベースのアラビア語テキストを正しく読み書きし、ソートするには、次のことを確認してください。

1- MySQL 文字セット: UTF-8 Unicode (utf8)

2- MySQL 接続照合: utf8_general_ci

3- データベースとテーブルの照合順序が次のように設定されている: utf8_general_ci または utf8_unicode_ci

次に、db に接続するときに、このコードを php スクリプトに追加します。

mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');

詳しくはこちら:LINK

もっとお手伝いできることがあれば教えてください。

于 2013-07-02T09:02:46.403 に答える