ホームページ >データベース >mysql チュートリアル >MySQL と Java で「不正な文字列値: 絵文字エンコーディングの問題」を修正する方法は?

MySQL と Java で「不正な文字列値: 絵文字エンコーディングの問題」を修正する方法は?

DDD
DDDオリジナル
2024-11-25 14:32:14122ブラウズ

How to Fix

不正な文字列値: 絵文字エンコーディングの問題

問題:

MySQL データベースで次のエラーが発生しました。実行しようとすると「java.sql.SQLException: 文字列値が正しくありません...」エラーが発生する絵文字を含む文字列値を挿入します。

問題:

問題は、絵文字文字のエンコードにあります。 MySQL の utf8 文字セットは、基本的な多言語プレーンの文字のみをサポートします。ただし、絵文字はこの範囲外であり、utf8mb4 などのより幅広いエンコーディングが必要です。

解決策:

これを解決するには、MySQL データベースと Java プログラムを構成する必要があります。 utf8mb4をサポートするにはエンコーディング:

  • MySQL:

    • MySQL をバージョン 5.5 以降に更新します。
    • 接続エンコーディングを utf8mb4 に設定しますクエリの使用: SET NAMES 'utf8mb4'.
    • utf8mb4 文字セットと照合順序を使用するように、影響を受けるテーブル列を変更します: var1 varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci.
  • Java:

    • Java プログラムが最新の JDBC ドライバーを使用していることを確認してください。
    • Connector/J を使用する場合は、characterEncoding を utf8 に設定し、自動検出が無効になっていることを確認してください (接続文字列にcharacterEncoding が設定されていません)。

追加メモ:

  • 絵文字は 4 つの Unicode コード ポイントのシーケンスとして表され、単一の文字として表すことはできません。 Java.
  • 一部の IDE やターミナル コンソールでは、これらの絵文字をレンダリングする際に問題が発生する場合があります。これらの文字をサポートするフォントを使用していることを確認してください。

これらの変更を実装すると、MySQL データベースと Java プログラムで絵文字をサポートできます。

以上がMySQL と Java で「不正な文字列値: 絵文字エンコーディングの問題」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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