[Mew-dist 05877] Re: b47
Shun-ichi GOTO
gotoh at example.com
1998年 8月 11日 (火) 05:20:39 JST
後藤@太陽計測です
>>>>> From: Kazu Yamamoto (山本和彦) <kazu at example.com>
> From: Shun-ichi GOTO <gotoh at example.com>
> Subject: [Mew-dist 05605] Re: b47
> Date: Sun, 19 Jul 1998 02:45:50 +0900
>
> > なんだか面白そうなので、挑戦しました。
>
> (1) Mule 3 でないと動かない
失礼しました。
手元には Mule2.3(19.28)と Emacs20.2しかないもので。
> (2) internal なコードを符号化していたので、少し改造しないと動かない。
> (おそらくもともと動いていて、最後にエンバグしたのだと思う。)
失礼しました
mew-header-encode-{base64,qp}に渡す文字列をエンコードしておくのを
忘れていました。
> というのを割り引いても、
>
> (rfc2047-encode "crueが好き mötley")
>
> "=?iso-2022-jp?B?Y3J1ZRskQiQsOSUkLRsoQiBt?= =?iso-8859-1?Q?=F6tley?="
>
> となるのは悲しいです。
確かに悲しいです。
> こうなるべきでしょうね。
>
> "=?iso-2022-jp?B?Y3J1ZRskQiQsOSUkLRsoQg==?="
> "=?iso-8859-1?Q?_m=F6tley?="
おっしゃるとほりです。
そうあって欲しいです。
> ぱっと見た感じですが、他にもうまくいかないパターンが少なからずあるような
> 気がします。(昔僕が考えたパターンを網羅できていません。)
そのパターンを流していただくわけにはいきませんか?
#クイズをやっているわけでもないので、
"crueが好き m<o>tley" の問題に関しては、先のコードではあるcharsetで
内包可能な文字を機械的に最大検索していたのが問題です。
上記のような理想の位置に切れ目を入れるためには以下のような
アルゴリズムになる?
1. 文字列をmininumなcharsetで分割
1. ascii は Q-Enc > space > B-enc の順に結合する
2. space は Q-Enc > B-Enc の順に結合する
"crueが好き m<o>tley"
=> ascii: "crue"
iso-2022-jp: "が好き"
space: " "
ascii: "m"
iso-8859-1: "<o>"
ascii: "tley"
=> (ascii, iso-2022-jp) "crueが好き"
space: " "
(ascii, iso-8859-1) "m<o>tley"
=> (ascii, iso-2022-jp) "crueが好き"
(ascii, iso-8859-1) " m<o>tley"
=> =?iso-2022-jp?B?<crueが好き>?=
=?iso-8859-1?Q?_m<o>tley?=
どんなもんでしょ。
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
P.S.
上記をあれこれ考えてから後、FLIMの eword-encode-string を試してみると
以下の結果
(eword-encode-string "mötley \"crue が好き\"")
=> "=?ISO-8859-1?Q?m=F6tley?= \"crue =?ISO-2022-JP?B?GyRCJCw5JSQtGyhCIg==?="
(eword-encode-string "crueが好き mötley")
=> "=?ISO-2022-JP?B?Y3J1ZRskQiQsOSUkLRsoQiA=?= =?ISO-8859-1?Q?m=F6tley?="
おおざっぱにコードを覗いてみると、やっぱりcharset(coding)分割してるのね。
FLIM & APELを利用するという手はダメ?
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
Mew-dist メーリングリストの案内