Webブラウザ -> APサーバ(WAS6.0) -> 別のWEBサーバ
という構成で文字化けが発生。APサーバが別のWEBサーバのデータを取ってきて、整形してクライアントに返すんだけど、どっかで文字化けてしてる。おきまりの「〜」のみが化けてます。ちなみに別のWEBサーバのレスポンスの文字コードはUTF-8。
切り分けてみた。
コマンドラインから別のWEBサーバにアクセスしてみて、コンソールにSystem.out.printlnしてみる。「〜」が「群2」って化ける。なんでだろー。
コンソールに出力する際に、UTF-8 -> EUC-JP変換が行われるけど、それがおかしいのかな。それとも別のWEBサーバのレスポンス自体がおかしいのかな。
別のWEBサーバのレスポンス自体がおかしいのかどうかを確かめるため、取得した文字列をUTF-8のままXSLTでStreamResult使ってファイル書き出しして、そのファイルを開いてみると、問題なく表示された。。Java内では文字コード変換が全くされないので、このファイルに書き出した内容は別のWEBサーバのレスポンスそのものです。つまり別のWEBサーバは悪くないって事がわかりました。。
->とりあえず、
new String( (new String( xmlBuf.toString().getBytes( "Windows-31J" ),"SJIS" ) ).getBytes( "EUC-JP" ) ,"EUC-JP") ;
てやるとうまく表示される事が判明。とりあえず、保険ほけん。。
(でも「〜」が似てるけど違う文字「〜」になってるなあ)
(「―」も「―」になってるなあ)
(MovableTypeが勝手に文字を変換しちゃってるな↑)
失礼いたします。
ちょっと聞きたいことがありますが、WAS4.0からWAS6.0までのアップグレードに関するんです。
できれば、メールで深く連絡でいいですか?
すみません。
(私は中国人ですが。。。)