2 つ表示されます。解決策:
1. サーバー側の mysql 設定ファイルを変更し、my.cnf ファイルを編集し、[mysqld] の下に行character_set_server = utf8 を追加して、mysql サービスを再起動します。
2. jdbc 接続を使用する場合は、正しいエンコーディング、jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8character_set_client: クライアント ソース データで使用される文字セットmysql 設定を変更するサーバー側のファイルを編集し、 my.cnf ファイルを編集し、 [mysqld] の下に 行character_set_server = utf8 を追加し、mysql サービスを再起動して、文字セットをクエリします。 次に、文字セットの変換プロセスを理解します。character_set_connection: 接続層の文字セット
character_set_database: 現在選択されているデータベースのデフォルトの文字セット
character_set_filesystem: OS 上のファイル名をこの文字セットに変換します。デフォルトのバイナリは変換を行いません
Character_set_results: クエリ結果の文字セット
character_set_server: デフォルトの内部動作文字セット
character_set_system: システム メタデータ文字セット
character_sets_dir: 文字セットのパス
データの挿入:
サーバーは、クライアント (character_set_client) 文字セットからのデータをcharacter_set_connection に変換し、 Character_set_connection の文字セットを対応する文字セットに割り当ててディスクに格納します。この文字セットは、1 の優先順位に従って判断されます。テーブル作成時に設定された文字セット 2. ライブラリ作成時の文字セットセット 3.character_set_database 文字セット 4.character_set_server 文字セットクエリデータ: サーバーは、ディスクに保存されている文字セットのデータをcharacter_set_results文字セットに変換し、クライアントに返しますそして分析
1. jdbcは設定されませんCharacterEncoding=utf8、サーバーのcharacter_set_serverはlatin1、jdbcはlatin1キャラクタ・セットでデータベースに接続し、データベース・サービスは最後にlatin1をutf8に変換してディスクに保存します(character_set_connectionと作成テーブルで指定されたキャラクタ・セットは両方とも utf8)、これにより文字化けが発生します 2。JDBC がcharacterEncoding=utf8 を設定せず、サーバーのcharacter_set_server が utf8 であるか、jdbc がcharacterEncoding=utf8 を設定し、jdbc がデータベースへの接続に utf8 文字セットを使用します。データベース サーバーはそれを utf8 でディスクに保存します。この時点では、データは正常です。
以上がJavaでjdbc経由でデータベースに接続すると中国語が文字化けする問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。