|
1.9でタグによる検索が出来るようになりました。TagCloudなんてのも面白いですね。 でちょっと気になったのですが、タグに日本語を使用した場合でも一見うまく動いているのですが、よく見るとURLのパラメータがエンコードされてないです。
動いていればいいかとも思うけど、UTF-8で2バイト文字が使われれば8ビット目が立つのでRFC的にはURLエンコードすることになっているのでは?
pebble.Tag.getPermalink をjava.net.URLEncoderでURLエンコードします。
Tanalogでは検索にGETメソッドを使っていて以前の問題からGETの時のみ8859_1からUTF-8に変換しているのでこのままではエラー。(リダイレクト中はUTF-8で変換されるんですね)
Pebbleの現バージョンのようにPOSTを使えばいいのでしょうが、ちと考えがあってGETでいきたいのです。
なのでクエリパラメータが「tag:??????」となってる場合は変換しない・・というよくわからないことになってしまいました。
|
というのもTomcat5.5ではGETの時もDecoderがかかっているようで正常に渡されます。Tomcat5はGETをリダイレクトした時のパラメータ処理がバグってたってことでしょうかね。(URLエンコードして渡したにも関わらずリダイレクト中にUTF-8に変換されてしまう)
Tag表示は、search.actionと同じ処理なので例の問題でGETだけ特殊な処理をしていたことに加え、TomcatのバージョンによってGETパラメータのエンコードが異なることになります。
ここは素直に通常の検索をPOSTにするしかなさそうですね。