サーバ上のテキストファイルをAppletから読み込んで表示させるものを作ったのですが、最近Netscape 6.1/6.2 IE6(win/mac/linux)で文字化けしていることに気づきました。2バイト文字が全部□になってしまいます。元の文字はSJISです。
みんな同じ問題にぶつかって大騒ぎしていると思ったら、世の中しずかなもので。。。僕だけなのでしょうか。
だれか、同じような問題抱えている方、対処法ご存知の方いらっしゃいませんか?

A 回答 (2件)

細かいソースがわかりませんので、ずばりの回答ではありませんが、参考までに。



恐らくSJIS→Unicodeの変換が上手くいっていないのだと思います。

補足に書かれているReadBufferは、java.io.BufferedReaderクラスのことでしょうか?

BufferedReaderクラスは、java.io.InputStreamReaderを利用するので、InputStreamReaderクラスのコンストラクタで明示的に、"SJIS"のエンコーディング名を指定すればよいような気がします。
(デフォルトでは、プラットフォームのエンコードとなっていますがアプレットの場合はサーバとブラウザのどちらの設定を見るのでしょうか?)

デフォルトのエンコーディング名を調べる場合は、InputStreamReaderのコンストラクタに、エンコーディング名を指定せずにインスタンスを生成後、InputStreamReader.getEncoding()を利用してください。

では、がんばってください。

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/api/java …
    • good
    • 0
この回答へのお礼

ありがとうございます。
今仕事中なので(オイ!)、今夜やってみます。
まずはお礼まで。

お礼日時:2002/02/04 17:58

ファイルからの入力と、Appletでの表示にはそれぞれどのクラスのどのメソッドを利用されているのでしょうか。



また、NN、IEの6より前のものでは正常に表示されていたのでしょうか?

ブラウザのバージョンが違う場合に上手くいくのであれば、ブラウザの問題というよりも、プラグインしているJREのバージョンが関係しているような気もします。

以上の情報を教えていただいて、私自身が回答できるかわかりませんが、他の方にも補足になると思います。

では、がんばってください。

この回答への補足

補足です。
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とかとも関係あると思いますか?

補足日時:2002/02/04 16:48
    • good
    • 0
この回答へのお礼

すみません、結果報告遅くなりました。

今回の問題は、エンコーディングとか色々変えてみたのですが、うまくいかず、苦し紛れにフォント指定をMS ゴシックやarialからHelbeticaに変えたらWindows版Netscape6.2、IE6でも文字化けがなくなりました。

どうもお騒がせしました。

お礼日時:2002/02/24 05:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報