- (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)(2)(3)では、UTF-8(UNICODE の可変長フォーマット)のファイルを作ります。
- (3)JDK1.0.2環境のみの場合
- 文字コードを解析して、UTF-8ファイルを出力するツールを作成。
J2Uc (by 久野靖さん)で作った unicode-escape ファイルを元にすれば比較的簡単にできます。 (→ Ue2Utf.java)
表示する側では、DataInputStream#readUTF() で読み込むと、 通常の固定長の UNICODE (UCS) の String になります。
ただし、将来 1.1.x 環境に統一されることを見越せば、 ファイルは日本語nativeのままとし、 表示する側で UNICODE 化するほうが正解かも知れません。
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 修正)