- 締切済み
Netscape 6.1/6.2 IE6(win)でApplet上の文字化け
サーバ上のテキストファイルをAppletから読み込んで表示させるものを作ったのですが、最近Netscape 6.1/6.2 IE6(win/mac/linux)で文字化けしていることに気づきました。2バイト文字が全部□になってしまいます。元の文字はSJISです。 みんな同じ問題にぶつかって大騒ぎしていると思ったら、世の中しずかなもので。。。僕だけなのでしょうか。 だれか、同じような問題抱えている方、対処法ご存知の方いらっしゃいませんか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
細かいソースがわかりませんので、ずばりの回答ではありませんが、参考までに。 恐らくSJIS→Unicodeの変換が上手くいっていないのだと思います。 補足に書かれているReadBufferは、java.io.BufferedReaderクラスのことでしょうか? BufferedReaderクラスは、java.io.InputStreamReaderを利用するので、InputStreamReaderクラスのコンストラクタで明示的に、"SJIS"のエンコーディング名を指定すればよいような気がします。 (デフォルトでは、プラットフォームのエンコードとなっていますがアプレットの場合はサーバとブラウザのどちらの設定を見るのでしょうか?) デフォルトのエンコーディング名を調べる場合は、InputStreamReaderのコンストラクタに、エンコーディング名を指定せずにインスタンスを生成後、InputStreamReader.getEncoding()を利用してください。 では、がんばってください。
ファイルからの入力と、Appletでの表示にはそれぞれどのクラスのどのメソッドを利用されているのでしょうか。 また、NN、IEの6より前のものでは正常に表示されていたのでしょうか? ブラウザのバージョンが違う場合に上手くいくのであれば、ブラウザの問題というよりも、プラグインしているJREのバージョンが関係しているような気もします。 以上の情報を教えていただいて、私自身が回答できるかわかりませんが、他の方にも補足になると思います。 では、がんばってください。
お礼
すみません、結果報告遅くなりました。 今回の問題は、エンコーディングとか色々変えてみたのですが、うまくいかず、苦し紛れにフォント指定をMS ゴシックやarialからHelbeticaに変えたらWindows版Netscape6.2、IE6でも文字化けがなくなりました。 どうもお騒がせしました。
補足
補足です。 kana-tanさん、ありがとうございます。 サーバ上のファイルの読み込みには java.net.URLクラスのopenStream()をつかって、サーバ上のテキストファイルを読みに行きます。 ストリームを開いたら、java.io.ReadBufferクラスのreadLine()をつかって一行づつ読み込みます。 NN、IEの6より前のものでは正常に表示されていました。 開発環境は、MacOS 9/Jake1.1 と、Red Hat Linux 7.2/SDK1.3.1両方でコンパイルしてみましたが、結果は同じでした。 Unicodeとかとも関係あると思いますか?
お礼
ありがとうございます。 今仕事中なので(オイ!)、今夜やってみます。 まずはお礼まで。