Catalyst::Controller::Mobile::JP - decode/encode with Encode::JP::Mobile
package MyApp; use Catalyst qw/ MobileAgent /; ... package MyApp::Controller::Root; use strict; use base 'Catalyst::Controller::Mobile::JP'; __PACKAGE__->config->{namespace} = ''; sub foo :Local { my ($self, $c) = @_; $c->res->body( $c->req->param('text') . "\x{E72A}" ); }
Catalyst::Controller::Mobile::JP works as a base controller that automatically decode()/encode() with the recommended encoding lead from values of UserAgent.
You can use unicode in your app that includes cross-carrier pictograms.
このモジュールは Catalyst::Controller で、SYNOPSIS にあるように使います。 begin で $c->req->params の Encode::decode()、end で $c->res->body の Encode::encode() を行ないます。
begin
$c->req->params
end
$c->res->body
エンコーディングは UserAgent の値を元に Encode::JP::Mobile から おすすめのものが利用されます(HTTP::MobileAgent::Plugin::Charset)ので、 アプリケーション内部では特に意識せずキャリアをまたいだ絵文字を含む文字情報を Unicode として扱うことができます。
利用されるエンコーディングの Encode::Encoding オブジェクトが 入っています。
$self->encoding->name; # x-sjis-docomo $self->encoding->mime_name; # Shift_JIS
コントローラーで begin や end を実装する場合は、以下のように next::method でこのモジュールのメソッドを呼んでください。
next::method
sub render :ActionClass('RenderView') { } sub end :Private { my ($self, $c) = @_; $c->stash->{encoding} = $self->encoding; $c->forward('render'); $self->next::method($c); }
Naoki Tomita <tomita@cpan.org>
http://coderepos.org/share/browser/lang/perl/Catalyst-Controller-Mobile-JP (repository)
#mobilejp on irc.freenode.net (I've joined as "tomi-ru")
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Encode::JP::Mobile, HTTP::MobileAgent::Plugin::Charset, Catalyst::View::MobileJpFilter
To install Catalyst::Controller::Mobile::JP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::Controller::Mobile::JP
CPAN shell
perl -MCPAN -e shell install Catalyst::Controller::Mobile::JP
For more information on module installation, please visit the detailed CPAN module installation guide.