[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: [jfriends] JDBCと日本語
始めまして天野と申します
しばらくROMだった訳ですが答えられそうなもの
を見つけたのでメールいたしましたs。
Taturou Mizuno wrote:
> 水野@xxxxxxxxxxタイムインターメディアです。
> JDBCで日本語が含まれているQueryを実行するとエラーになるという現象が発生し
> ていますが、そもそも、JDBCは日本語には対応していないのでしょうか?
もしかしたら外しているかもしれませんが、Windows環境なら文字コードの違い
により
データベースに直接Unicodeを投げてしまうからだと思います、たぶん・・・。
あまり自信ないです。
ですからクエリー文の中の日本語文字列をシステムの文字コードにエンコードし
てから
実行すればいいような気がします・・・
下記のようなメソッドを使用してエンコードされた文字列でクエリーを実行すれ
ばよいと思います。
protected String SJIStoUnicode(String s){
if(s == null){
return "";
}
try{
return new String(s.getBytes("8859_1"),"SJIS");
} catch(UnsupportedEncodingException e){
return s;
}
}
protected String UnicodeToSJIS(String s){
if(s == null){
return "";
}
try{
return new String(s.getBytes("SJIS"),"8859_1");
} catch(UnsupportedEncodingException e){
return s;
}
}
それと JavaHouseのメーリングリストを「JDBC」で調べた結果、
以下のようなものを発見したので参考にしてください。
>日本語が出力されないのはJDBCでとってきた文字列が8bitずつ分解されて
>しまうからです。[JavaHouse-Brewers:9833]で関さんが具体的に説明されています。
>getStringでとってきた文字列はSJISなのでunicodeに変換しないとprintlnで
>出力すると文字化けします。変換クラスはJava-FAQに載っているそうですが,
>[JavaHouse-Brewers:8928]でも小林さんが紹介されています。ただし、これらの
>クラスでは半角カタカナが文字化けするそうなので,これまた小林さんが
>[JavaHouse:5294]で対応策を紹介されています。
JavaHouseのメーリングリストで「初心者用に作りました」と書いてあったので
即座に入りましたが、swap()関数なんて初心者に必要なのだろうか、と思いつつ
回答する人、質問する人が初心者ではないような気もする今日このごろ・・・
(^^;)
結構勉強になるので全部目を通していますが、内容が難しいのであまり理解でき
ていません。
Javaを勉強し始めて1年位、といっても独学なため、あまり勉強していないし理
解できていないのが現状ですが・・・
最近、現状を打開する為、Javaでメーラを作ろうと頑張っています。と、いって
も普通のメーラーを作っても面白くないので
PostPetをかなりあほにした、お遊びメーラを作る予定です(^^;;;)
どなたか興味があったら教えてくださいな。
非力ながら参考になればと、メールしました。
参考にならなかったらごめんなさい。
では、お元気で
-- masahiro AMANO