- ベストアンサー
ベンダー依存文字のコード変換について
JAVAでファイルを読み込んだ際の文字コード変換について、質問があります。 ファイルをInputStreamReaderでSJISに設定して読み込み、 HTMLで表示させたいのですが、ベンダー依存文字については、 文字化けしてしまいます。 これを文字化けしないようにするには、どうしたらいいんでしょうか? どなたかご教授願います。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
実際の環境が書かれていないので詳しいことはかけませんが、いずれにしても、実際に使用されている「本当の」文字コードを指定してやる必要があります。 例えば、一般にWindowsではShift-JISエンコードが使われているといいますが、厳密には正しくありません。なぜなら、本来のJIS規格のShift-JISには含まれていない、いわゆる「機種依存文字」が含まれているからです。つまり、Windowsで実際に使用されているエンコードは、「Shift-JISに似て非なるもの」なのです。これは、「マイクロソフトコードページ932」というエンコードです。(Javaでは主に "MS932" という略称で呼ばれます) したがって、例えばWindowsの機種依存文字が入った似非Shift-JISテキストを読み込みたいときは、エンコードに SJIS ではなく MS932 を指定する必要があるわけです。 Windows以外のものについても同様です。たとえば他にLinux用のEUCエンコードなどがJavaには用意されています。使用できるエンコードの一覧については、Javaのドキュメントを確認してください。