[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:00861] Re: Don't you like ISO-2022?
nobby@Nmailの作者です
> ここの所が良く分からないんですが、「Subject に生 JIS を書くと困る人が
> 存在する」と言う意味でしょうか?
> 生 JIS と言うのが ISO-2022 コード系を指しているのなら、困らないと思い
> ます。ISO-2022 コード系は、エスケープシーケンスで文字セットを切替える
> ようになっていて、例えば中国語、韓国語なども表現できます。
> # 昔、news の signature にハングルを使っている人がいました。本文などは
> # 日本語です。
>
> 『日本語情報処理』という本からエスケープシーケンスをちょこっとひろって
> くると、
>
> 日本語 : ^[$B
> ASCII : ^[(B
> 韓国 : ^[$(C
> 中国 : ^[$A
>
> となっています。ただ、台湾の Big5 コード系は ISO-2022 とは全然関係ない
> ようで無理みたい。MIME なら Big5 も日本語などと混在させる事はできるん
> だと思います(MIME は良く分からない)。
基本的にJISコードを使っていれば2バイト系の混在は理論的には可能です
が、しかし font を日本語 韓国語 中国語 全部INSTALLしている環境というのは
あまり(いやほとんど?)無いでしょう。メーラを作成(設計)する立場から考えると
メッセージのやりとりはJISでないと困ります。
そういう点からも MIMEでは(ただし本文)はJISコードで送受信することになって
います。
次に Headder 部分 (From や Subject 等 : のついている奴) はこれは、必ず
7bitコードだけという仕様になっているんです
理由は、メールの古い規格である RFC822(だったと思う)では JISコードすら
8bit コードということで使用できないことになっていました(古い7bit JISは
この名残?) したがって漢字はどう表現するかというと
新JIS に変換 -> Base64 でデコードし "=?ISO-2022-JP?B?"の後にくっつける
という方法がとられています。
さてここで気がつかれた人もいると思いますが、
"そんな古い規格のサーバは日本語が 通らないのでは?"
と考えるでしょう? それは、内部で 7bit化させてしまうのです。
これは Quoted-Printable という方法で7bit化 されます
変換は結構かんたんで 0x20 ' ' より小さいコード(ESC CTRL-Aなど)と
0x7f より大きなコード(つまり8bitコード)は =1b などと =にヘキサデシマル
に変換した数字をたせばいいのです。
ざっとなぜ? と こうなっている(メール規則) を書きました
参考になれば幸いです。
------------------------------------------------------------------
Nobby Noboru Hirano
/ | / / | / / /
/ | / / | / / /
/ | / / | / _____ /
/ | / / | / / /
__/ __/ () __/ __/ () __/ __/ ()
mailto:nobby@xxxxxxxxx URL: http://www.din.or.jp/~nobby/
PGP fingerprint = FA 69 72 CD F8 D3 70 D9 39 10 FF 69 73 DE 91 CD
------------------------------------------------------------------