Perl のテンプレートエンジン Tenjin の文字化け対策 改
前回(Perl のテンプレートエンジン Tenjin の文字化け対策)修正した内容では、テンプレートキャッシュがない場合、文字化けした HTML ファイルが出力される問題があったので、その修正を施した。修正箇所は次の通り。
Tenjin.pm の修正箇所
use utf8; use Encode; (中略) sub load_cachefile { my ($self, $cachename, $template) = @_; #my $cache = $template->_read_file($cachename, 1); my $cache = decode('utf-8', $template->_read_file($cachename, 1));
Template.pm の修正箇所
use utf8; use Encode; (中略) #return $self->{script} = $buf[0] . " \$_buf;\n"; return $self->{script} = decode('utf-8', $buf[0]) . " \$_buf;\n"; } (中略) #print OUT $content; print OUT encode('utf-8', $content); close(OUT); }
上記のモジュールの読み込みと、文字コードの変換を修正すれば、Tenjin で出力する HTML ファイルの文字化けはなくなる。