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