[Web4r-devel-ja] defpage のパス引数の%デコードについて

Kazuo Koga kogakazuo at gmail.com
Sat Sep 18 12:49:55 UTC 2010


はじめまして

defpageのパス引数の解釈方法について質問です。

以下のページを定義したとき、
    (defpage test (path1 path2 :get get1 get2)
      [p path1 " " path2 " " get1 " " get2])
path1、path2の%エンコードをデコードするイディオムのようなものはあるでしょうか。
今使っているバージョンだと%エンコードされたままの文字列となります。


たとえば、ブラウザのアドレスバーから以下のURLでアクセスします。
    http://127.0.0.1:8080/test/hello/%E3%81%9B%E3%81%8B%E3%81%84?get1=%E3%81%AF%E3%81%A6
最近のブラウザ(Chrome, Safari)だと
    http://127.0.0.1:8080/test/hello/せかい?get1=はて
のように表示される内容です。

web4rから返されるページは以下のような内容になります。
    hello %E3%81%9B%E3%81%8B%E3%81%84 はて

path2 はデコードされず、get1はデコードされています。


URLの仕様ではエンコード時の文字セットは未定義のようですが、とりあえずUTF-8決めうちで
trivial-utf-8などの外部ライブラリを使ってデコードはできそうだなというところまで試しました。

しかし、こんなありがちな作業はフレームワーク側で用意されているのでは、と思いあたり質問してみました。

--
古賀


More information about the web4r-devel-ja mailing list