Encode::JP::Mobileを使う
携帯の絵文字がウザーなので
文字化けないようにする方法をためしてる。
Sledge::Charsetの部分で。
use Encode;
use Encode::JP::Mobile;
use Carp;sub convert_param {
my $self = shift;
my $page = shift;my $agent_code;
if ( $page->mobile->agent->is_docomo ) {
$agent_code = 'shift_jis-imode';
} elsif ( $page->mobile->agent->is_ezweb ) {
$agent_code = 'shift_jis-kddi';
} elsif ( $page->mobile->agent->is_vodafone ) {
$agent_code = 'shift_jis-vodafone';
} elsif ( $page->mobile->agent->is_airh_phone ) {
$agent_code = 'shift_jis-airedge';
} else {
croak "non mobile";
}for my $p ($page->r->param) {
my @v = (
map { Encode::encode('euc-jp',$_) }
map { Encode::decode($agent_code,$_) }
$page->r->param($p)
);
$page->r->param($p => \@v);
}
return;
}
こんなんかなぁ。
参考:http://blog.bulknews.net/mt/archives/001742.html
(追記)
ちなみにこれはモバイル用のCharsetなのでelseがcroakしても問題ない予定。
(追記2)
さらに、このフィルタリングの場合、*****;の形式にはならない感じ。
なので、Sledge::MobileGateの方にはFIXしないと、おもわれ。
対応表を作るの面倒だしなぁ。
FIXして他のプロジェクトに影響がでるのもイヤンな感じだし。