1−2.JIS→SJISコード変換ツール
メール保存ファイル(WINDOWS 95では受信トレイ.mbx(C:\Program Files\Internet Mail and News\Default User\Mail)の中をテキストファイルで見てみると、これも文字化けしています。
コードで言うと、たいていはJISコードで書かれていて、他にBase64方式、HTML方式で本文、表題、宛先、Ccなどに使われています。
このファイルをテキストファイルでも見ることができるように、変換ツールを作りました。コマンドプロンプトで実行します。
プログラムの仕様は以下の通りです。
なおこのツールが欲しい方は
メール
でご連絡ください。
JIS → SJIS 変換プログラム仕様
・コマンド形式は
jtosj [入力パス] [出力パス]
とする。
・次のエスケープ・シーケンスに従い、文字種類を決定する。
ESC
(0x1b)
( B
ASCII文字 (ISO 8859-1のローマ字)
ESC ( J
JIS X0201のローマ字
ESC ( I
JIS X0201のカタカナ
ESC $ B
JIS X0208
ESC $ D
JIS X0212
ESC $ @
ESC $ B
と同じ
・引数のパスは相対パス、絶対パスのどちらにも対応する。
・ファイルの終わりは物理的ファイルエンド(
0x0, 0x0a
)のときとする。
・半角カタカナ、Base64方式、HTML方式にも対応する。
(半角カタカナ、Base64方式は表題、差出人、宛先、Ccも含む。)
・連続する文字コード0x7f, 0x0, 0x7f, 0x0, 0x0, 0x0, *, 0x0, 0x0, *, 0x0, 0x0 があると(*は任意のコード)、メールの区切りとみなし、その間の文字は出力しない。
・文字列 "Return-Path: " があると、その前に改行コードを挿入する。
・特別な意味を持たない制御文字(改行、タブ以外の0x0-0x19コード)、およびそれ以降の行末までの文字は出力しない。
・2バイト文字でも日本語以外の認識されないコードがあれば、出力しない。
・添付ファイル(アタッチメント)は変換後のファイルから省く。
・添付ファイルの区別は文字列 "
Content-Type:
" の直後に来る文字が、'
t
' か '
m
' でない場合で、それ以降の最初の空白行から次の空白行までを添付ファイルと判断する。それ以外はテキストファイルと見なし、変換を行う。
・Base64方式とその他の文字の区別は、文字列 "
Content-Transfer-Encoding: base64
" が存在する行以降の最初の空白行から次の空白行までをBase64方式の文字と見なす。
・添付ファイルと見なされている間は、文字列 "
Content-Transfer-Encoding: base64
" があってもBase64方式とは見なされない。
・HTML方式とその他の文字の区別は、文字列 "
Content-Type: text/
" の直後に来る文字が '
h
' の場合で、それ以降の最初の '
<
' 文字からHTML方式の文字とし、 その後、文字列
</HTML
の直後に来る文字が、'
>
' か '
=
' の場合、HTMLモードを抜ける。
・HTMLモード時、'
=
' の文字はその次に来る2文字を16進コードと見なし、その文字自体は出力しない。'
=
' の次に来る文字が '
\n
' の場合は無視し、その次の2文字を対象とする。
・表題は、"
Subject:
" の文字列が見つかれば、改行までを表題と見なす。ただし次の行の先頭文字が '
=
', '
(space)
', '
(Tab)
' の場合、引き続き表題と見なす。
・差出人は "
From:
" の文字列が見つかれば、改行までを差出人と見なす。ただし次の行の先頭文字が '
=
', '
(space)
', '
(Tab)
' の場合、引き続き差出人と見なす。
・宛先は "
To:
" の文字列が見つかれば、改行までを宛先と見なす。ただし次の行の先頭文字が '
=
', '
(space)
', '
(Tab)
' の場合、引き続き宛先と見なす。
・Ccは "
Cc:
" の文字列が見つかれば、改行までをCcと見なす。ただし次の行の先頭文字が '
=
', '
(space)
', '
(Tab)
' の場合、引き続きCcと見なす。
・表題、差出人、宛先、Ccの中に、文字列 "
=?ISO-2022-JP?B?
" または "
=?iso-2022-jp?B?
" の場合、それ以降、'
=
' か '
?
'文字が来るまで、Base64方式の文字と見なす。その文字列および文字自体は出力しない。
・WIN32版の実行には、GNU-Win32 runtime DLL(例:
cygwin1.dll
)が必要です。
(なお、受信トレイ.mbx でなくても、同じようにJISコードで書かれているファイルなら対応できます。)
メール
〜このツールに関するお問い合わせはこちらへ
『公開図書館』の掲示板
〜ご意見・ご感想などはこちらへ
>>>
本を閉じる
<<<