perl:tt
Template Toolkit
Perlのテンプレートエンジン
文字化け防止
文字化け防止の一例
- テンプレートファイルをUTF8で書き、newするときにENCODINGにutf8を指定してUTF8フラグを立てる
- テンプレートパラメータにはUTF8フラグ付きのデコード済み文字列を渡す
- フォーム等の入力値に対して、全てUTF8フラグを立てる。
- スクリプトファイルもUTF8で書き、use utf8 するとスクリプトに直接書かれたリテラルはフラグ付きになる
- 書き出す時にbinmodeでエンコーディングを指定、ここで変更することで、shift_jisで出す事もできる
$template = Template->new({ ENCODING => "utf8" }); use utf8; my $result; $template->process("テンプレートパス", { hoge => "ああああ" }, \$result) or die $template->error; binmode STDOUT, ":utf8"; #binmode STDOUT, ":encoding(euc-jp)"; print $result;
CGI.pmのフォームの入力値をUTF-8セット
for my $p($cgi->param) { my @v = map { Encode::decode_utf8($_) } $cgi->param($p); $cgi->param($p, @v); }
perl/tt.txt · 最終更新: 2011/01/14 08:24 by 127.0.0.1