pla*_*etp 11 unicode perl template-toolkit
每次运行CGI脚本时都会收到此警告(输出由Template :: Toolkit呈现):
Wide character in print at /usr/local/lib/perl5/site_perl/5.8.9/mach/Template.pm line 163.
什么是消除它的正确方法?
我使用这个配置创建tt对象:
my %config = (
ENCODING => 'utf8',
INCLUDE_PATH => $ENV{TEMPLATES_DIR},
EVAL_PERL => 1,
}
my $tt = Template->new(\%config);
Run Code Online (Sandbox Code Playgroud)
在调用之前将其$tt->process()置于自动编码输出:
binmode STDOUT, ':utf8';
Run Code Online (Sandbox Code Playgroud)
编辑:正如daxim所提到的,可以使用TT的编码工具:
$tt->process($infile, $vars, '-', { binmode => ':utf8' })
Run Code Online (Sandbox Code Playgroud)
这依赖于广泛使用的约定,即'-'文件名STDIN在打开以供阅读时以及STDOUT打开以进行写入时为您提供.
编辑2:BTW,后一种方式在mod_perl(2.0.5)下似乎对我不起作用.
| 归档时间: |
|
| 查看次数: |
6932 次 |
| 最近记录: |