成瀬です。

Fujioka wrote:
> xibbarこと藤岡です。
> 
>>>> $ ruby19 -Ku -ruri -ve 'p ["日本語".dump, URI.unescape( URI.escape("日本語") ).dump]'
>>>> ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-darwin9]
>>>> ["\"\\u{65e5}\\u{672c}\\u{8a9e}\"",
>>>> "\"\\u{e6}\\u{97}\\u{a5}\\u{e6}\\u{9c}\\u{ac}\\u{e8}\\u{aa}\\u{9e}\""]
>>> UTF-8決め打ちはまずいと思いますが、こういう場合って
>>> default_externalでいいんでしょうか。
>> 基本的には引数のエンコーディングがいいのですかねぇ。
> 
> こちらは同意ですが、
> 
>> で、US-ASCII だった場合は UTF-8 で。
>>
> こちらは初耳です。
> cgi.rbの方は引数にしているのですが、
> US-ASCIIの場合はUTF-8にしていません。

URI の percent-encode は通常 UTF-8 ですから。
とりあえずなんでもかんでも percent-encode してくる CGI とは、
若干事情が異なるかなと思います。


しかし、ちょっと試して気付いたんですが、
> URI.escape("http://exmaple.com/foo bar?a=b=c;d=e#hoge#fuga")
=> "http://exmaple.com/foo%20bar?a=b=c;d=e%23hoge%23fuga"
この # ってエスケープしちゃっていいんですかねぇ。

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