2004年08月10日 (火)
Sledgeでsjisなurlフィルタ
Sledgeで日本語を uri フィルタ使おうとすると、内部的には euc なので、フィルタで展開される、フェイズとテンプレートを sjis に変換するフェイズが異なるので文字化けしてしまいます。
とか使えばいんですが
テンプレートの中で
[% USE Jcode %]
とするのにちょっと抵抗アリ。<USE 〜は view の処理なのか?
なので、
$pkg->register_hook(
BEFORE_DISPATCH => \&sjis_filter,
);
sub sjis_filter {
my $self = shift;
$self->tmpl->set_option(
FILTERS => {
sjis => sub { return Jcode->new($_[0], 'euc')->sjis }
}
);
}
こんな風なプラグイン作ってみた。
[% r.param('q') | sjis | uri %]
気持ちイイ。
posted by takefumi
|
この日記へリンク
|
コメント(3)
|
トラックバック(0)
この日記へのトラックバック
この日記へのコメント
あ、それスゴく気持わかります。<自分がやるとしたらそうする
# でも TT の uri フィルタもイケてないです。
# r.param('q') に "+" があるとおかしくなるかと
ちなみに、今目の前の席に座っている Template::Plugin::Jcode 作者がこれ読んで微妙な顔付き。。。
ってコメントしてるしw
ぼくはむしろviewですべきだと思うのだけど。。
sjisなuriというviewなんだし。
[% USE Jcode %]する必要がないというだけで、
本質は同じような気がします。
posted by ryu at 2008年12月03日 13時16分 #

