* 日本語対応 [#va1c7535]
EUC-JPのテンプレートファイル、DBを扱う前提とする。
** テンプレートファイル [#wea6f8cf]
TTの場合、TTのセットアップで以下のようにするとテンプレートファイル内はdecode()される。
package MyApp::View::TT;
use base 'Catalyst::View::TT';
__PACKAGE__->config({
ENCODING => 'euc-jp',
});
** データベースクラス [#s56b6b39]
DBI(C)の場合、[[DBIx::Encoding>http://search.cpan.org/perldoc?DBIx::Encoding]]を使えばDBの入出力のタイミングで自動的にdecode()/encode()してくれる。
my $schema = MyApp::Schema->connect(
$self->{config}->{dsn},
$self->{config}->{db_user},
$self->{config}->{db_password},
{
'RootClass' => 'DBIx::Encoding',
encoding => 'euc-jp',
}
);
$self->{config}->{dsn},
$self->{config}->{db_user},
$self->{config}->{db_password},
{
'RootClass' => 'DBIx::Encoding',
encoding => 'euc-jp',
}
);
** リクエストパラメータとレスポンスボディ [#if034c4e]
[[Catalyst::Plugin::Unicode::Encoding>http://search.cpan.org/perldoc?Catalyst::Plugin::Unicode::Encoding]]を使うと、リクエストパラメータをdecode()して、レスポンスボディ(HTML)をencode()してくれる。
package MyApp;
use Catalyst ('Unicode::Encoding');
** その他 [#hcb810c7]
後は、コントローラクラスやビジネスロジッククラスでuse encoding 'euc-jp'とかすればよい。
** 参考 [#i74a9615]
http://wiki.catalystframework.org/wiki/tutorialsandhowtos/Using_Unicode