日本語対応EUC-JPのテンプレートファイル、DBを扱う前提とする。 テンプレートファイルTTの場合、TTのセットアップで以下のようにするとテンプレートファイル内はdecode()される。 package MyApp::View::TT; use base 'Catalyst::View::TT'; __PACKAGE__->config({ ENCODING => 'euc-jp', }); データベースクラスDBI(C)の場合、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', } ); リクエストパラメータとレスポンスボディCatalyst::Plugin::Unicode::Encodingを使うと、リクエストパラメータをdecode()して、レスポンスボディ(HTML)をencode()してくれる。 package MyApp; use Catalyst ('Unicode::Encoding'); その他後は、コントローラクラスやビジネスロジッククラスでuse encoding 'euc-jp'とかすればよい。 参考http://wiki.catalystframework.org/wiki/tutorialsandhowtos/Using_Unicode |
|