From: Wakou Aoyama Date: 2000-05-25T12:46:38+09:00 Subject: [ruby-list:22905] Re: CGI::escape 青山です。 On Wed, 24 May 2000 17:34:16 +0900, Ryunosuke Ohshima wrote: > こちらは僕も最初は() 忘れだと思ったのですが、Cokkie#to_s()での動作を > 考えると、「@path = ""」より、「@path = nil」に初期化された方が良い > と思われます。 これはごもっともです。というか、勝手に path を付ける事自体が余計なお世 話なんですよね。本当は。ですが、そのコードのコメントにあるように、IE というか、IE 5 に対応する為の策なのです。 どうも、IE 5 では、Cookie に path を付けないと、おかしな動作をする事が あるようなのです。で、とにかくなんらかの path を付加させようという事で、 このようになっています。 という事で、nil にしてしまうと path そのものが付加されなくなってしまい ますので、ここは不適切かもしれませんが、"" のままにしたいと思います。 また、おそらくはその前で path の値は得られると思いますので、この最後の 値は、保険みたいなものですね。まず使われる事は無いでしょう。 > 余談ですが、HTMLのタグのエレメントでも「&"<>」を含む場合は > CGI::escapeHTML()する必要があるのですね。当然と言われれば当然なので > すが、先ほどRFC1866の以下の部分を読むまで、気づきませんでした。 これは、RFC 1866 が勘違いしていると思われます。A エレメントの HREF 属 性のデータ型は、実体参照などの行われない CDATA 型なので、& の解釈は行 われず、逆に、展開されないという事は、実体参照で記述してはならないはず ですから。 HTML 4.0 Strict DTD > > href %URI; #IMPLIED -- URI for linked resource -- HTML 2.0, HTML 3.2 でも同じく CDATA となっています。また、少なくとも、 手元の Lynx, Netscape, mozilla, w3m などでは & のままで通りますし。 あ、もしかして、ここで勘違いしている? RFC 1866 > NOTE - There are SGML mechanisms, CDATA and RCDATA > declared content, that allow most `<', `>', and `&' > characters to be entered without the use of entity > references. これって、実体参照無しが RCDATA の方になっていませんか? 読み違い? -- 青山 和光 Wakou Aoyama