From: SATOH Fumiyasu Date: 2009-11-20T02:42:01+09:00 Subject: [ruby-dev:39731] Re: NKF の MIME エンコード・デコード さとうふみやす @ OSSTech です。 At Thu, 19 Nov 2009 17:36:00 +0900, KISHIMOTO, Makoto wrote: > 次に示すような、特定のパターンの文字列を、ruby 添付ライブラリの NKF で > MIME エンコード・デコードすると、元に戻りません。 > 長さにおかしくなるしきい値があるようなので、正常動作するものとおかしくなる > ものとの境界の例を示します。 > ruby 1.8 と 1.9 で、しきい値と症状が異なります。 似た(?)ような現象で、以下のようなものがあります: $ ruby --version ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux] $ ruby -rnkf -e 'p NKF.nkf("-wM","x"*60)' "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" $ ruby -rnkf -e 'p NKF.nkf("-wM","x"*61)' "=?EUC-JP?B?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=\n " $ ruby1.9 --version ruby 1.9.0 (2008-10-04 revision 19669) [x86_64-linux] $ ruby1.9 -rnkf -e 'p NKF.nkf("-wM","x"*60)' "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" $ ruby1.9 -rnkf -e 'p NKF.nkf("-wM","x"*61)' "=?US-ASCII?Q?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=\n =?US-ASCII?Q?xxx?=" ちなみに、オリジナル(?)の nkf(1) も変です。 $ nkf --version Network Kanji Filter Version 2.0.7 (2006-06-13) Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa),2000 S. Kono, COW Copyright (C) 2002-2006 Kono, Furukawa, Naruse, mastodon zsh: exit 1 nkf --version $ ruby -e 'puts "x"*61' |nkf -wM =?EUC-JP?B?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?= > ruby 1.8 > > $ ruby -v > ruby 1.8.7 (2009-04-08 patchlevel 160) [amd64-freebsd8] > $ ruby -rnkf -e "puts NKF.nkf('-mw', NKF.nkf('-Mj', 'a' * 60 + 'あ'))" > aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaあ > $ ruby -rnkf -e "puts NKF.nkf('-mw', NKF.nkf('-Mj', 'a' * 61 + 'あ'))" > iiヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ喨ヲ > あ > > ==== > > ruby 1.9 > > $ ruby19 -v > ruby 1.9.2dev (2009-09-16 trunk 24960) [x86_64-freebsd8.0] > $ ruby19 -rnkf -e "puts NKF.nkf('-mw', NKF.nkf('-Mj', 'a' * 74 + 'あ'))" > aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaあ > $ ruby19 -rnkf -e "puts NKF.nkf('-mw', NKF.nkf('-Mj', 'a' * 75 + 'あ'))" > aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ?ISO-2022-JP?B?JEIkIhsoQg==?= -- -- Name: SATOH Fumiyasu (fumiyas @ osstech co jp) -- Business Home: http://www.OSSTech.co.jp/ -- Personal Home: http://www.SFO.jp/blog/