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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 21:01:16865ブラウズ

How to Fix the MySQL

JDBC 経由で MySQL に UTF-8 を挿入する際の「不正な文字列値」エラーのトラブルシューティング

「不正な文字列値」エラーは、次の場合に発生する可能性があります。 JDBC を使用して UTF-8 データを MySQL データベースに挿入しようとしています。このエラーは通常、文字エンコーディングが正しく構成されていないことを示します。

問題の説明

この場合、次のパラメーターを使用して JDBC 接続を構成しました。

Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password);

この設定では、Unicode 文字を使用し、文字エンコーディングを UTF-8 にするように指定します。ただし、エラー メッセージは、不正な文字列値が 4 バイトの UTF-8 文字である「xF0」で始まることを示唆しています。

解決策

デフォルトでは、 MySQL の utf8 エンコーディングでは、UTF-8 の 3 バイトで表現できる文字のみが許可されます。この問題を解決するには、MySQL データベースに utf8mb4 エンコーディングを指定する必要があります。このエンコーディングは、UTF-8 で 4 バイトを占める文字をサポートします。

解決手順:

  1. 続くquery:
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(255) CHARACTER SET utf8mb4;
  1. MySQL 5.5 以降を使用している場合は、MySQL 構成ファイルでサーバー プロパティcharacter_set_server を utf8mb4 に設定します。
  2. Connector/J接続からcharacterEncodingを除外することにより、UTF-8設定を自動検出します。 string.

追加情報:

  • MySQL の Unicode 文字セットの詳細については、MySQL の公式ドキュメントを参照してください。 [https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode- ets.html)
  • Connector/J には、UTF-8 サポートの構成に関する詳細な手順も記載されています。 [https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-charset.html](https://dev.mysql.com/doc/connector-j/8.0/ en/connector-j-reference-charset.html)

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

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