• 追加された行はこの色です。
  • 削除された行はこの色です。
* Catalyst 日本語 [#va1c7535]
* 日本語対応 [#va1c7535]

** 文字コードを指定する [#v956f2a5]
lib/Myapp.pm
 use Catalyst qw/-Debug ConfigLoader Static::Simple FillInForm Charsets::Japanese/;
 (略)
 __PACKAGE__->config( name => 'Myapp', 'charsets' => 'EUC-JP' );
http://search.cpan.org/~lyokato/Catalyst-Plugin-Charsets-Japanese-0.06/lib/Catalyst/Plugin/Charsets/Japanese/Nihongo.pod
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',
       }
    );
** リクエストパラメータとレスポンスボディ [#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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS