Beyond です。 まず確認しておきたいのですが、「cookie の文字列を escape すべきか否か」 では無く、「ライブラリが、cookie の文字列を escape すべきか否か」を問題 にしています。 で、 > > // Must escape the value and date in case they have spaces > > // and/or commas > > var s = name + "=" + escape(value) + ";expires=" + escape(nextyear.toGMTString()); > > > > doc.cookie = s; > > } > > World Wide Web Consortium のサンプルで Must escape となっている、とい とのことですが、cgi.rb の動作は、この仕様にはしたがっておりません。 1. expire= に与える文字列は escape されていない 2. name= に与える文字列は、escape されていない場合がある 1はともかくとして、2の場合は、 cookie = CGI::Cookie::new( {"name" => "name", "value" => [ p1, p2 ] ) とした時で、 escape( value.to_s ) では無く、 escape( p1 ) + '&' + escape( p2 ) となります。 つまり、「英数字と -_.」以外の文字が HTTP ヘッダに渡される場合があるので す。 他のブラウザなどの現状を無視して、"must escape" だからと言うことなら、1・ 2は問題ですし、他の CGI との連携などを考えようとすると、自動的な escape は、やりすぎだと思います。 --------------------- Beyond