[sylpheed-jp:10536] Re: 英語環境で送信すると差出人や宛先が文字化け

IWAMOTO Kouichi sue @ iwmt.org
2007年 11月 27日 (火) 03:57:39 JST


岩本です。

On Mon, 26 Nov 2007 19:24:19 +0900
山本 博之 <hiro-y @ kcn.ne.jp> wrote:

> On Mon, 26 Nov 2007 19:02:19 +0900
> "KONDOU, Kazuhiro" <kazuhiro @ alib.jp> wrote:
>
> > ASCII というか、ざっくり言うと英数字以外です。
> > ASCII の範囲内でも , とかもダメです。
> > 
> > これらの文字を使う場合には "" で括られる必要がありますが、日本語の文字
> > 列は MIME エンコードされる際に範囲外の文字が使われるので、まず 100% ""
> > で括る必要があります。

特殊な意味を持つ文字以外ならば記号も使えます(*1)。
そして、ISO-2022-JPには通常Bエンコーディング(Base64)が使われます。
Base64で使われる記号は + - = の3つだけで、MIMEエンコーディングを表す
為に使われる ? を含めてすべて "" で括る必要の無い文字です。
# Base64に使われる文字は、色々な条件を考慮して出来るだけ安全な文字を
# 使うという事で選ばれています

> そもそも MIME エンコードされた文字列は "" で括ってはいけないんでは
> なかったでしょうか。

RFC 2047には、

|   + An 'encoded-word' MUST NOT appear within a 'quoted-string'.

とあるので、 "" で括ってはいけません。
# もし括られていたならば、それはMIMEエンコードされた文字列では無い
# という事になります。


*1: RFC 2822 では表示名(display-name)は以下のように定義されています。

display-name    =       phrase
phrase          =       1*word / obs-phrase
word            =       atom / quoted-string
atom            =       [CFWS] 1*atext [CFWS]
atext           =       ALPHA / DIGIT / ; Any character except controls,
                        "!" / "#" /     ;  SP, and specials.
                        "$" / "%" /     ;  Used for atoms
                        "&" / "'" /
                        "*" / "+" /
                        "-" / "/" /
                        "=" / "?" /
                        "^" / "_" /
                        "`" / "{" /
                        "|" / "}" /
                        "~"

大雑把に言うと、display-nameは "" で括られた文字列(quoted-string)か
atextの集まりなので、atextに含まれる文字はすべて使えます。

-- 
いわもと こういち(sue @ iwmt.org/sue @ cds.ne.jp/sue @ postfix.jp)
# 「黒井さんちのプリンスメロンに払われた十円ちょうだいな」って何巻だったっけ?


Sylpheed-jp メーリングリストの案内