HTML::Template の文字化けの対処2008年09月23日

perl のテンプレートライブラリはもっぱら HTML::Template を使ってるのだけど、UTF-8等のテンプレートファイルを読みこませると文字化けすることがある。PerlIO のレイヤを指定してテンプレートファイルを読みこまないのが原因。

あらかじめ自分で open したもののファイルハンドルを渡すことで簡単には回避できるけど、そのテンプレートファイルの中で TMPL_INCLUDE が実行されている場合は、その部分が文字化けする。

これに対するパッチは2種類ほど見かけたけど、

に投稿されている HTML-Template-2.9-utf8.patch がいい感じ。パッチを当てておいて、

my $tpl = HTML::Template->new(filename=>'hoge.tpl', binmode=>':utf8');

のように使う。次の版から merge してくれんかの。

2011.6.6 追記 HTML::Template 2.10 にパッチが取り入れられるようです

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:


コメント:

トラックバック

このエントリのトラックバックURL: http://tkusano.asablo.jp/blog/2008/09/23/3780768/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。

_ 日誌 - 2011年06月06日 10時49分

CPAN にある、perl 用テンプレートエンジンである HTML::Template において utf8 などの文字コードのテンプレートを使うと文字化けが発生することがあるという問題、
[[HTML::Template の文字化け
<< 2008/09 >>
01 02 03 04 05 06
07 08 09 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

RSS