ホームページ >データベース >mysql チュートリアル >MySQL utf8mb4 データベースに絵文字を保存するときに「無効な utf8 文字列」エラーが発生するのはなぜですか?

MySQL utf8mb4 データベースに絵文字を保存するときに「無効な utf8 文字列」エラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-09 12:50:14726ブラウズ

Why Am I Getting

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。