ホームページ > データベース > mysql チュートリアル > Java アプリケーションが MySQL データベースと対話するときに歪んだ UTF-8 文字を表示するのはなぜですか?

Java アプリケーションが MySQL データベースと対話するときに歪んだ UTF-8 文字を表示するのはなぜですか?

Patricia Arquette
リリース: 2024-11-01 10:47:02
オリジナル
592 人が閲覧しました

Why is my Java application displaying distorted UTF-8 characters when interacting with a MySQL database?

JDBC MySQL 相互作用における UTF-8 エンコーディングの問題のトラブルシューティング

JDBC コネクタ 5.1 を使用した Java-MySQL 統合シナリオでは、特有のエンコーディングの問題が発生しますUTF-8 データの読み取りおよび書き込み時。文字が歪んだり文字化けして表示され、データベース操作と Web アプリケーションの両方で予期しない視覚化が発生します。

この謎を解決するには、データベース設定を調べてください:

character_set_client-->utf8
character_set_connection-->utf8
character_set_database-->utf8
...
character_set_server-->latin1
...
ログイン後にコピー

この問題は、文字セットの不一致に起因します。データベース サーバーは、UTF-8 をネイティブにサポートしない「latin1」を使用します。これを修正するには、JDBC 接続文字列で「useUnicode」パラメータと「characterEncoding」パラメータを明示的に設定します。

DriverManager.getConnection(
           "jdbc:mysql://" + host + "/" + dbName 
           + "?useUnicode=true&characterEncoding=UTF-8", user, pass);
ログイン後にコピー

これにより、読み取り操作と書き込み操作の両方で一貫して UTF-8 が使用されるようになります。

この問題はデータベース構成だけに関係しているわけではありません。 Java アプリケーションが UTF-8 を正しく処理しない場合もあります。データベース設定を調整した後もエンコードの問題が解決しない場合は、以下を使用してデータベースからデータをデコードすることを検討してください。

new String(data.getBytes("UTF-8"));
ログイン後にコピー

これにより、データが UTF-8 文字列に変換され、Java アプリケーションで適切に視覚化できるようになります。ただし、データベースへの書き込みが妨げられる可能性があるため、これは一般的な解決策としては避けてください。

以上がJava アプリケーションが MySQL データベースと対話するときに歪んだ UTF-8 文字を表示するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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