日本語ファイル表示

update 97,07,16 [English]

Javaで日本語ファイルを表示するには?

(1)java.version=1.1.x の環境のみの場合
InputStreamReader で読み込めば、 日本語ファイルのままでOKです。
(2)1.1.x の開発環境(JDK1.1.x等)があり、 1.0.2環境(要日本語対応。Netscape,MSIE等)で表示可能にしたい
  • [方法1]JDK1.1.x 付属の native2ascii で
    % native2ascii 日本語ファイル 中間ファイル
    % native2ascii -reverse -encoding UTF8 中間ファイル 最終ファイル
    として、UTF-8ファイルを作ることができます。(thanx > 村田@沖電気さん)
    ただし、さらに修正して各行の頭に2バイトのバイト数情報を付加する必要あり?
  • [方法2]ツールを作成。
    InputStreamReader を使えば、自分で文字コードを解析する必要はありません。 (→ Native2Utf.java
(3)JDK1.0.2環境のみの場合
文字コードを解析して、UTF-8ファイルを出力するツールを作成。
J2Uc (by 久野靖さん)で作った unicode-escape ファイルを元にすれば比較的簡単にできます。 (→ Ue2Utf.java
(2)(3)では、UTF-8(UNICODE の可変長フォーマット)のファイルを作ります。
表示する側では、DataInputStream#readUTF() で読み込むと、 通常の固定長の UNICODE (UCS) の String になります。
ただし、将来 1.1.x 環境に統一されることを見越せば、 ファイルは日本語nativeのままとし、 表示する側で UNICODE 化するほうが正解かも知れません。

UTF-8ファイルによる表示テスト

test102.utf

Ue2Utf.java による UTF-8 ファイル

test11x.utf

Native2Utf.java による UTF-8 ファイル


ReadTest.java / DataInputStream2.java
Sparc や WinNT でどう見えるか?

表示内容が異なるのは、両ツールでバックスラッシュ '\' の扱いが異なるためです。
Java 1.0 の DataInputStream#readUTF() にはバグがあるため、 修正版クラスを使っています。(97,06,30 修正)


ファイルのまとめ