理系学生日記

おまえはいつまで学生気分なのか

CGI::Application の文字化け

前と同じところ詰まったけど、結局、UTF-8 で書いた日本語入りのテンプレートなのに、HTTP のヘッダでの文字コード指定が間違っているという前回と同じ過ち。
CGI::Application において、ヘッダをクライアントへ送出する直前に呼ばれる cgiapp_postrun にてヘッダを変更してやると良い。

sub cgiapp_postrun {
    my ($self, $ref) = @_;
    $self->header_props( -charset => 'utf-8' );
}