In message <19981114184914T.gotoh / taiyo.co.jp>
Shun-ichi GOTO <gotoh / taiyo.co.jp> writes:

> 先の3例をmew-header-split-stringにかけると
> 1. ("漢字 や ひらがな")        ... 1つ
> 2. ("漢字" " and " "ひらがな") ... 3つ
> 3. ("漢字andひらがな")         ... 1つ
> 
> となり、結果、2以外は「まとめてエンコード」とするわけです。

  この後につけたのではいけないでしょうか?

  # \s+ で split -> should_encode? true な token ではさまれる空白は
  # reduce.

  行末の空白だって保存できるぞ.単なる副作用だけど (^^;

  encode すべき文字列は
  
    * ASCII printable のみで構成されていない
    * white spaces でない

  としています.<< てぬき.

  多国語対応って,結構無理ではないかと思うんですよ.せいぜい ISO-2022
  の枠組に乗っているコードセットぐらいでしょう.何とかなりそうなのは.

  # 半角カナ入り Shift_JIS と日本語 EUC と韓国語 EUC とを自動判別でき
  # るのか,とか.

  じっさいのところ RFC を読んだわけですらありませんが,参考までに.

===========================================================================
  柳川和久 @ 東大阪市 . 大阪府
  kjana / os.xaxon.ne.jp                                  November 16, 1998
「鏡台だろうと兄弟だろうと,ここまで来たらやるっきゃない!」
「最後までダジャレかにゃ〜」

module MIMEHead def tokenize(str) tmp = str.split(/(\s+)/) res = [] while tok = tmp.shift if should_encode? tok while should_encode? tmp[1] tok << tmp.shift.to_s tok << tmp.shift.to_s break unless tmp[0] end end res << tok end res end def should_encode?(str) str !~ /\s+|\b(?:[\x21-\x7f])+\b/ end module_function :tokenize, :should_encode? end if $0 == __FILE__ p MIMEHead.tokenize "わたしは だあれwho am i? みゅ? みゃ? みゅ! " end