エンコーディング例外: Java-MySQL の絵文字を含む「不正な文字列値」
MySQL を使用する Java アプリケーションで、例外「java. sql.SQLException: 文字列値が正しくありません:絵文字を含む文字列を挿入すると、「xF0x9Fx91xBDxF0x9F...」が発生する場合があります。このエラーは、文字エンコードの違いが原因で発生します。
問題の文字列値には「walmart obama ??」が含まれていますが、「???」は絵文字を表します。データベースでは、文字列が挿入される変数は varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL として定義されます。ただし、アプリケーションで使用される MySQL バージョンは、UTF-8 エンコーディングの基本的な多言語プレーン (BMP) 文字のみをサポートします。 BMP の範囲外にある絵文字は、このエンコーディングでは適切に表現できません。
この問題を解決するには、補助文字をサポートする UTF-8mb4 エンコーディングに切り替える必要があります。これには、次の調整が含まれます:
これらの変更を行うことで、アプリケーションは UTF-8mb4 エンコーディングを使用して絵文字を適切に処理できるようになり、「文字列値が正しくありません」例外が解決されます。
以上がJava で MySQL データベースに絵文字を挿入するときに発生する「文字列値が正しくありません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。