• ベストアンサー

ベンダー依存文字のコード変換について

JAVAでファイルを読み込んだ際の文字コード変換について、質問があります。 ファイルをInputStreamReaderでSJISに設定して読み込み、 HTMLで表示させたいのですが、ベンダー依存文字については、 文字化けしてしまいます。 これを文字化けしないようにするには、どうしたらいいんでしょうか? どなたかご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

実際の環境が書かれていないので詳しいことはかけませんが、いずれにしても、実際に使用されている「本当の」文字コードを指定してやる必要があります。 例えば、一般にWindowsではShift-JISエンコードが使われているといいますが、厳密には正しくありません。なぜなら、本来のJIS規格のShift-JISには含まれていない、いわゆる「機種依存文字」が含まれているからです。つまり、Windowsで実際に使用されているエンコードは、「Shift-JISに似て非なるもの」なのです。これは、「マイクロソフトコードページ932」というエンコードです。(Javaでは主に "MS932" という略称で呼ばれます) したがって、例えばWindowsの機種依存文字が入った似非Shift-JISテキストを読み込みたいときは、エンコードに SJIS ではなく MS932 を指定する必要があるわけです。 Windows以外のものについても同様です。たとえば他にLinux用のEUCエンコードなどがJavaには用意されています。使用できるエンコードの一覧については、Javaのドキュメントを確認してください。

関連するQ&A