私はあるデータベースから別のデータベースにデータをコピーします。最初の DB には cp1251 コードページがあります。
第一歩
シンプルなJavaプログラムを使用して、最初のデータベースからシンプルなcsvファイルにデータをコピーしました。DB からデータを抽出している間、コンソール アウトは読み取り可能です。
csv ファイル utf-8 のコードページ (いくつかのテキスト エディターでチェックしたところ、すべてのデータが読み取り可能で、テキスト エディターはファイルの文字セットを utf-8 として定義しています)
Java マシンのデフォルトの文字セットは utf-8 です utf8 文字セットの csv ファイル 新しい mysql db は utf8 ファイルにあります
これは、mysql cmd のコマンド ステータスで出力されます
Server characterset: utf8
Db characterset: utf8
Client characterset: cp866
Conn. characterset: cp866
TCP port: 3306
Uptime: 25 min 29 sec
mysql db のすべてのテーブルと文字セットは utf-8 です
別の単純な Java プログラムを使用して mysql にデータを挿入します
mysql のデータが読めない
mysql サーバーの設定
[server]
## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
collation_server=utf8_unicode_ci
character_set_server=utf8
#skip-character-set-client-handshake
character_sets-dir="C:/Programm/xampp/mysql/share/charsets"
[client]
default-character-set=utf8
jdbcの準備済みステートメントで問題になる可能性のあるutf8ではなくutf16を使用するjvmがサーバー側に見つかりました。