ホームページ >データベース >mysql チュートリアル >MySQL utf8mb4 データベースに絵文字を保存するときに「無効な utf8 文字列」エラーが発生するのはなぜですか?
MySQL utf8mb4 データベースでの絵文字の保存: 無効な文字エラーのトラブルシューティング
絵文字を含む名前を MySQL データベースに保存しようとすると、「正しく設定されているにもかかわらず、無効な utf8 文字列が発生する場合があります。潜在的な問題の 1 つは、文字セットと照合順序の設定が一貫していないことにあります。
構成を確認するには、次のクエリを実行します。
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
出力には、問題のデータベースの次の設定が表示されます。
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
character_set_client、character_set_connection、character_set_results の値がすべて設定されていることを確認します。 utf8mb4に。そうでない場合は、これらの設定を適宜調整してください。
さらに、my.cnf 構成ファイルに矛盾がないか確認してください。文字セットと照合順序を指定する設定を検索し、それらがデータベース構成と一致していることを確認します。たとえば、次の行が存在することを確認します:
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
これらの設定が存在しないか間違っている場合は、必要に応じて変更し、MySQL サービスを再起動します。
最後に、次のコマンドを実行することを検討してください。現在の接続の文字セットと照合順序を設定するクエリ:
SET NAMES utf8mb4;
これにより、3 つの文字セット変数がすべて設定されることが保証されます。
これらの手順に従うことで、utf8mb4 構成で MySQL データベースに絵文字を保存するときに発生する無効な UTF-8 文字エラーの問題を解決できます。
以上がMySQL utf8mb4 データベースに絵文字を保存するときに「無効な utf8 文字列」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。