ホームページ > データベース > mysql チュートリアル > JDBC 経由で UTF-8 データを MySQL に挿入するときに発生する「文字列値が正しくありません」エラーを修正する方法

JDBC 経由で UTF-8 データを MySQL に挿入するときに発生する「文字列値が正しくありません」エラーを修正する方法

DDD
リリース: 2024-12-30 11:59:10
オリジナル
209 人が閲覧しました

How to Fix

JDBC 経由で MySQL に UTF-8 を挿入する場合の不正な文字列値の処理

次を使用して MySQL データベースに UTF-8 データを挿入しようとするとJDBC では、「文字列値が正しくありません:」というエラー メッセージが表示される場合があります。 'xF0x90x8Dx83xF0x90...'" このエラーは、挿入されたテキストに MySQL の utf8 文字セットで表現できない文字が含まれている場合によく発生します。

接続設定に Unicode ("useUnicode=true") の使用が含まれているにもかかわらず、 UTF-8 エンコーディング (「characterEncoding=utf-8」)。MySQL の utf8 エンコーディングは、表現できる Unicode 文字のみをサポートします。 UTF-8 では 3 バイト。ただし、エラーの原因となる文字には 4 バイトが必要です。

解決策:

この問題を解決するには、2 つのオプションがあります:

  • 列のエンコーディングを utf8mb4 に変更します:
    MySQL の場合バージョンが 5.5 以降の場合は、影響を受ける列の列エンコーディングを utf8 から utf8mb4 に変更できます。このエンコーディングでは、UTF-8 で 4 バイトを占める文字を保存できます。
  • サーバー構成の変更:
    さらに、MySQL でサーバー プロパティcharacter_set_server を utf8mb4 に設定する必要がある場合があります。設定ファイル。これにより、MySQL はデフォルトで 4 バイトの UTF-8 文字セットをサポートするようになります。

MySQL との JDBC 接続に一般的に使用される Connector/J は、デフォルトで 3 バイトの Unicode になることに注意してください。したがって、接続文字列からcharacterEncodingを外し、MySQLサーバーをcharacter_set_server=utf8mb4で構成して、Connector/JがUTF-8設定を自動検出できるようにすることをお勧めします。

以上がJDBC 経由で UTF-8 データを MySQL に挿入するときに発生する「文字列値が正しくありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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