[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 メーリングリストの案内