ホームページ > データベース > mysql チュートリアル > Java MySQL インタラクションでの「java.sql.SQLException: 不正な文字列値」エラーを解決するにはどうすればよいですか?

Java MySQL インタラクションでの「java.sql.SQLException: 不正な文字列値」エラーを解決するにはどうすればよいですか?

DDD
リリース: 2024-11-24 16:39:11
オリジナル
308 人が閲覧しました

How to Resolve

java.sql.SQLException: 不正な文字列値: Unicode 文字エンコーディングの問題に対処する

Java および MySQL を使用する場合、データベース操作で問題が発生する可能性があります。不正な文字列値に関連するエラー。このようなエラーの 1 つは「java.sql.SQLException: 文字列値が正しくありません」です。これは、特定の非標準文字を挿入するときに発生する可能性があります。

たとえば、文字列「walmart obama ??」を挿入すると発生する可能性があります。カラムタイプが「varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL」の MySQL データベーステーブルにコピーすると、上記のエラーが発生する可能性があります。問題は、基本多言語プレーン (BMP) を超える Unicode コード ポイントを表す文字「??」のエンコーディングにあります。

MySQL のデフォルトのエンコーディングである utf8 は、BMP 内の文字のみをサポートします。絵文字やその他の特殊記号など、BMP の外の文字に対応するには、utf8mb4 エンコーディングを採用する必要があります。

解決策:

この問題を解決するには、 utf8mb4 をサポートするための MySQL データベースと接続設定エンコーディング:

  1. MySQL データベースの更新:

    • MySQL バージョンが 5.5 以降であることを確認します。
    • Alter使用するテーブル列「varchar(255) CHARACTER SET utf8mb4 COLLATE」 utf8mb4_general_ci NOT NULL".
  2. MySQL 接続の構成:

    • ドライバーに依存しないアプローチの場合、クエリ " SET NAMES 'utf8mb4'" との接続を確立した後、
    • Connector/J を使用している場合は、接続文字列で "characterEncoding" を "utf-8" に設定し、互換性のあるサーバーで utf8mb4 を自動的に検出して使用します。

utf8mb4 をサポートするようにデータベースと接続の構成を調整すると、「java.sql.SQLException: Incorrect string」が発生します。 value」エラーが解決され、非 BMP 文字をデータベースに正常に挿入できるようになります。

以上がJava MySQL インタラクションでの「java.sql.SQLException: 不正な文字列値」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート