Shiro Kawai
shiro****@lava*****
2004年 8月 27日 (金) 11:06:29 JST
あ、こちらのミスです。関数名としてはhtml-encodeではなくて html-escapeですね。混乱させてしまいました。 From: katsutoshi ito <itou.****@rens*****> Subject: [Gauche-devel-jp] Re: SXMLで属性値文字列にアポストロフィが含まれる場合の変換処理 Date: Fri, 27 Aug 2004 10:42:27 +0900 > 「cgi の場合は受取るのが html でない」という一文の意味に確信が持ててないです。 > これは cgi は HTML 文書(タグのついているアレ)でデータを受取らず、 > GET リクエストなら環境変数 QUERY_STRING に"?var=val&var2=val2" が渡り、 > POST リクエストなら標準入力から読んだ時点で "var=val&var2=val2" と > いった値で受取る?ということを指しておられますか? そういうことです。現在の文脈ではデータフォーマットの話をしています。 cgiが受け取るのは、mime-typeで言えば text/html ではなく、 application/x-www-urlencoded もしくは multipart/form-data である、ということです。従ってhtmlやxmlで行われる実体参照への エスケープ ('>' -> '>' 等) は適用されません。 しかし、それぞれのフォーマットに従った変換 (x-www-urlencoded ならuri-encode、multipart/form-dataならMIME multipart encoding)が 適用されています。 逆に、cgiが出力をtext/htmlで送り出す場合、それはhtmlに従った フォーマットでなければなりません。そこでは、オリジナルの文書中にある 生の '&' は実体参照 '&l' へと置き換えられている必要があります。 --shiro