[mew-dist 25284] Re: B decode 時のエラー条件緩和
Motohiko Minakuchi
zxcv3794 at example.com
2004年 9月 12日 (日) 15:32:21 JST
水口です。
"=" 省略の一般性ですが、私も Norton AntiSpam 以外では **B ENCODING
ERROR** に遭遇した覚えがありません。 こっちを直してもらうのが本筋であ
ることは承知しており、ただいま奮闘中です。
Mew側の対応としては、私はパッチで満足です。
> > やるなら、こうでしょう。
とりあえずかずさんのパッチを試させて頂きました。 CVS の b4-0-68 でも
head でも快適に動いています。 ありがとうございます。
> > 4 で割った余りが 1 のときは、どうするんでしょうか?
>
> それこそエラーのままでいいですよね。
調べましたが、 Norton AntiSpam に関する限りはエラーでいいと思います。
「4 で割った余りが 1」を生成する符号化規則として私が思い付くのは「符号
化文字列末尾の "A" を削除」だけです。 (他にありますかね?)
以下、上記条件に該当する例を試してみた結果です。
元Subject : "あ@@" (3n + 1 bytes)
Mewの符号化 : =?iso-2022-jp?B?GyRCJCIbKEJAQA==?= (4n + 2 bytes)
変更された Subject : "[Norton AntiSpam] あ@@" (3n + 1 bytes)
Norton AntiSpam による上記の符号化 :
=?iso-2022-jp?B?W05vcnRvbiBBbnRpU3BhbV0gGyRCJCIbKEJAQA?= (4n + 2 bytes)
以上のとおり、末尾の "A" は削除されません。
仮に末尾の"A"の削除にも対応するならば、下記のケースの救済方法が悩まし
いと思います。 今回のパッチでも、"@"が 1個落ちます。 少くとも実例が発
生するまでは、エラーでいいのでは無いでしょうか。
元Subject : "あ@@@" (3n + 2 bytes)
正しい符号化 : =?iso-2022-jp?B?GyRCJCIbKEJAQEA=?= (4n + 3 bytes)
救済対象 : =?iso-2022-jp?B?GyRCJCIbKEJAQE?= (4n + 2 bytes)
P.S. Base64 デコードの内容確認用の CGI を作りました。 基本的には自分用
の使い棄てツールなので、いろいろ不親切です。m(_r_)m
<http://www.eva.hi-ho.ne.jp/cgi-bin/user/zxcv/decode64.cgi?in=GyRCJCIbKEJAQE>
利用価値があれば、もう少し整えますが。
--
水口 元彦 (みなくち もとひこ)
zxcv3794 at example.com
Mew-dist メーリングリストの案内