なんとか、インストールは完了した。
しかし、実際にデータをインサートして、コマンドプロンプトからselect文を流すと、
「あの文字化け」が。
対応策:
mysqlからselect文を実行する前に、次の文を実行する。
set names sjis
たった、これだけのこと。
原因:
コマンドプロンプトは、windowsだけあって、sjisで文字コードを解釈して
いる。
DBには、汎用性も考え、utf8でデータベース及び、テーブルを作成した。
ということで、いつもながら気が利かないMicrosoftの機能だけあって、
自動的にsjisへ変換してくれない。
ということで、set names命令でsjisへ変換してから表示してね!と、
教えなくては ならなかった。
他:
コマンドプロンプトは、sjisを理解するものであることは想定していた
ので、 コマンドプロンプト側で、utf8を解釈することができないかと
調べたが、だめだった。
javaから、JDBCを使ってコマンドプロンプトに表示させると
問題が生じなかった。 これは、JDBCドライバのほうで自動的に変換
してくれているのかな? と思って。
con = DriverManager.getConnection( "jdbc:mysql://localhost/ChangeInfoDB?useUnicode=true&characterEncoding=Shift_JIS, ほにゃらほにゃら
しかし、Shift_JISをlatin1にしても文字化けしなかった。
なぜ? 文字化けを期待していたのだが。。。
これ以上深追いしても、先に進まないので、これにて。。。
0 件のコメント:
コメントを投稿