私はmysql 5.5.10を使用していますが、そのcharacter_setsは
| 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 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | utf8mb4_general_ci |
| collation_database | utf8mb4_general_ci |
| collation_server | utf8mb4_general_ci |
IOS5の絵文字のutf8mb4をutf8から変更しました。それらは4バイトコードで表されます。
しかし、スマイリー絵文字を3つ挿入すると、「???」 mysqlにあります。
3F 3F 3F(16進数)です。
IOS4の絵文字はうまく保存できますが、iOS5の絵文字は保存できません。
IOS5の絵文字を保存するにはどうすればよいですか?
私を助けてください。
4バイトのUnicode文字はまだ広く使用されていないため、そこにあるすべてのアプリケーションが完全にサポートしているわけではありません。 MySQL 5.5は、適切に設定されている場合、4バイト文字で正常に動作します。他のコンポーネントも同様に動作するかどうかを確認してください。
確認すべき他のいくつかの事項を次に示します。
クライアントとサーバーの文字セットの設定に加えて、すべてのテーブルのデフォルトの文字セットとテキストフィールドがutf8mb4に変換されていることを確認してください。 ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;
など。
データがすでにutf8文字セットにある場合、問題なくutf8mb4に変換する必要があります。いつものように、試す前にデータをバックアップしてください!
また、アプリレイヤーがデータベース接続の文字セットをutf8mb4に設定していることを確認してください。これが実際に起こっていることを再確認してください–選択したフレームワークのmysqlクライアントライブラリの古いバージョンを実行している場合、utf8mb4サポートでコンパイルされていない可能性があり、文字セットが正しく設定されません。そうでない場合は、自分で更新またはコンパイルする必要があります。
Mysqlクライアントでデータを表示するときは、絵文字を表示できるマシン上にいることを確認し、SET NAMES utf8mb4
クエリを実行する前。
アプリケーションのすべてのレベルで新しい文字をサポートできれば、破損することなくそれらを使用できるはずです。
私は最近 MySQLのutf8
からutf8mb4
。そこの手順に従えば、すべてが正しく機能するはずです。プロセスの個々のステップへの直接リンクは次のとおりです。
お役に立てれば。