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 つのオプションがあります:
MySQL との JDBC 接続に一般的に使用される Connector/J は、デフォルトで 3 バイトの Unicode になることに注意してください。したがって、接続文字列からcharacterEncodingを外し、MySQLサーバーをcharacter_set_server=utf8mb4で構成して、Connector/JがUTF-8設定を自動検出できるようにすることをお勧めします。
以上がJDBC 経由で UTF-8 データを MySQL に挿入するときに発生する「文字列値が正しくありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。