プロが教える店舗&オフィスのセキュリティ対策術

JAVAでファイルを読み込んだ際の文字コード変換について、質問があります。

ファイルをInputStreamReaderでSJISに設定して読み込み、
HTMLで表示させたいのですが、ベンダー依存文字については、
文字化けしてしまいます。

これを文字化けしないようにするには、どうしたらいいんでしょうか?
どなたかご教授願います。

A 回答 (1件)

実際の環境が書かれていないので詳しいことはかけませんが、いずれにしても、実際に使用されている「本当の」文字コードを指定してやる必要があります。



例えば、一般にWindowsではShift-JISエンコードが使われているといいますが、厳密には正しくありません。なぜなら、本来のJIS規格のShift-JISには含まれていない、いわゆる「機種依存文字」が含まれているからです。つまり、Windowsで実際に使用されているエンコードは、「Shift-JISに似て非なるもの」なのです。これは、「マイクロソフトコードページ932」というエンコードです。(Javaでは主に "MS932" という略称で呼ばれます)

したがって、例えばWindowsの機種依存文字が入った似非Shift-JISテキストを読み込みたいときは、エンコードに SJIS ではなく MS932 を指定する必要があるわけです。

Windows以外のものについても同様です。たとえば他にLinux用のEUCエンコードなどがJavaには用意されています。使用できるエンコードの一覧については、Javaのドキュメントを確認してください。
    • good
    • 0

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