9

PHPを使用してMySQLテーブルに♥を挿入しようとしています。これは入力フィールドから取得されます。

テーブルの文字セットはutf8_general_ciであり、PHPではmysql_query("SET NAMES 'utf8'");接続が確立された直後に使用します。

しかし、♥はただ「?」になります 挿入されたとき。

また、phpMyAdminからテーブルに♥を挿入しようとしましたが、次のエラーが返されます。

Warning: #1366 Incorrect string value: '\xE2\x99\xA5' for column 'subject' at row 1

結果も「?」です。♥の代わりに。

これを引き起こす原因について何かアイデアはありますか?

4

2 に答える 2

23

これは、テーブルの列で定義されている互換性のない文字セットと照合が原因です。

テーブルまたは列の文字セットをに変更してみてくださいUTF8

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;

また

ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8; 
于 2012-09-12T10:48:08.193 に答える
0

これを試して:

ini_set('default_charset', 'utf-8');

phpファイルで:を設定します

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

utf8_general_ciへの照合のためにデータベースをチェックインします

于 2012-09-12T10:48:08.757 に答える