MIMEエンコード/デコード
マシン・ネイティブな文字コード と JIS (ISO-2022-JP) + MIMEエンコード との変換。
メールやニュースのヘッダ用。
変換しつつファイルを読み書きしますが、このアプリ自体はテスト用で、
ヘッダか本文かに関係なく変換しますので、実用性は殆どありません。
実用アプリの参考にどうぞ。
・こんなものを使わなくても
JavaMail
というものがあります。(使ったことないけど)
参考文献: RFC2047 "MIME Part Three"
MIMEエンコード
update 2000,09,24 (Rev.1)
-
-
- コンパイル: javac MimeEnc.java
- 使い方: java MimeEnc inputfile outputfile
- MIME encoded word の前後に空白文字がない場合、
スペースを付加します。
- 75文字を超える MIME encoded word は自動分割します(RFC2047の規定による)。
ただしスペースを挟むのみで、改行の追加はしません。
- JDK1.1.5 のバグ(?)で、
2バイト文字で終わる String について
getBytes("JIS") メソッドを呼ぶと、
最後のエスケープシーケンス 1B 28 42
が欠落したり重複することがあるので、これを修正しています。
(JDK1.1.8 や Java2(JDK1.2) ではこのバグは直っているので、
もはや不要な機能)
- Rev.1 で修正された不具合 (Thanx > 高崎さん)
- 「75文字を超えると自動分割」を MIME encoded word
ではない部分まで含めて処理していた。
- ASCII文字だけの行や空行でも末尾に 1B 28 42 を付加していた。
- Java2 で「明示的なキャストが必要」というコンパイルエラー。
MIMEデコード
update 1998,03,21
-
-
- コンパイル: javac MimeDec.java
- 使い方: java MimeDec inputfile outputfile
- MimeEnc で自動付加した MIME encoded word 前後のスペースは除去されませんので、
完全に encin.txt と同じ出力は得られません。
(どうするのが正しいのだろう?)
- MIMEエンコードされたファイルは、
ネイティブな文字コードのファイルと見なして読み込んでいます。
生JIS混じりの場合は、InputStreamReader で "JIS"
を指定して読み込んでください。