6

絵文字をMySqlデータベースに保存したいのですが、3バイトの絵文字がデータベースに正しく保存されていますが、4バイトの絵文字が疑問符として保存されています。utf8をutf8mb4に完全に変換したようですが、ここで何が欠けているのか正確にはわかりません。私のMySQLバージョンは5.5.29ですがSHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';、MySqlシェルでを実行すると、次のように表示されます。

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+

現在、テストの目的で、絵文字の保存をテストするために作成された1つのテーブルを持つ1つのデータベースしかありません。phpMyAdminを使用してデータベースを作成し、MySqlシェルを使用してテーブルを作成しました。

CREATE TABLE `test_emojis` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

そしてそれはまだ機能しません(まだ疑問符)。

ただし、興味深いものが見つかりました。phpMyAdminに疑問符が表示されますが、select * from test_emoji;と入力すると、Mysqlシェルに絵文字アイコンが正しく表示されます。何か案は?

誰か助けてもらえますか?

ありがとう

4

2 に答える 2

3

phpMyAdmin にはハードコーディングされutf8た文字セットがあるため、これを変更するにはコードを編集する必要があります。将来のバージョンでは、fb30c14で修正されます(これは、これらの値を変更する場所も示しています)。

于 2013-08-15T09:56:56.583 に答える