2009/09/10 18:16, Tanaka Akira wrote:
> In article<4AA78891.1080903 / airemix.jp>,
>    "NARUSE, Yui"<naruse / airemix.jp>  writes:
> 
>> userinfo に含まれる、ユーザ名やパスワードに @ が含まれていたので、
>> IRI っぽいものにされた段階でエスケープされたのではないでしょうか。
> 
> そうやってできた %40 は decodeURI("%40") で @ に戻らないんで
> すが、それでいいんでしょうか。

URI を decode しても、その decode 結果は IRI っぽいものなので、
そのルールで禁止されている文字 (@ はそこに含まれるらしい) は
戻すことはできないように思います。
つまり、URI を分割して component にしてから、
decodeURIComponent (またはそれに類するもの) を適用して、
戻すことになるのでしょう。

まぁ、%25 を % にしてしまうあたり、失敗した仕様に見えますが。

>> application/x-www-form-urlencoded は HTML だけでなく、
>> WSDL や XForms からも参照され、cookie でも時々利用されるので、
>> HTML と指定するのはちょっとひっかかります。
> 
> HTML で定義した、という意味合いのつもりです。
> 
> でも、ひっかかるなら www というのもいいかも知れませんね。
> URI.escape_www_form とか。そうすると 1文字短くなりますし。

いいように思います。

気になっただけなのですが、ここで encode ではなく escape を
使っているのは何か意図があってのことですか?

-- 
NARUSE, Yui  <naruse / airemix.jp>