2005-09-01 [長年日記]

[Q3] Content-Transfer-Encodingの決め方

本文を指定されたエンコーディングでエンコードしたら8bit文字を含んでいた場合(最上位ビットが0以外になった場合)、以下のようなルールでContent-Transfer-Encodingを決めています。

  • ISO-8859-xかUTF-7の場合には、quoted-printable
  • それ以外の場合には、base64

ところが言語(国?)によっては8bitを使う場合もあるようなので何らかのオプションで8bitを使えるようにしようと思い立ちました。

一つ目の方法はアカウント単位(実際にはサブアカウント単位)で使うContent-Transfer-Encodingを決めてもらうようにする方法です。そして指定されていなかったら上記のルールに従います。ある意味楽で良いですが、いちいち指定するのが面倒という問題があります。

二つ目の方法は上記のルール自体を指定できるようにする方法です。つまり、文字コードの名前がこの正規表現にマッチしたらどれを使うというような指定を可能にします。これはこれで良いと思うのですが、同じ文字コードでもメールの場合にはquoted-printableだけれど、ニュースの場合には8bitというような指定ができません。

というわけでどちらも一長一短です。Outlook Expressをみると、メールとニュースでそれぞれ8bitを使うかどうかという設定ができるようになっています。どうしたものか…*1

*1  と言いつつ一番目の方法の実装が既に入っている(UIは入っていませんが)のですが、なんかいまいちです

[]