1 package Template::Stash::ForceUTF8;
7 use base ( $Template::Config::STASH );
12 my $result = $self->SUPER::get(@_);
13 return $result if ref $result;
15 Encode::_utf8_on($result) unless Encode::is_utf8($result);
24 Template::Stash::ForceUTF8 - Force UTF-8 (Unicode) flag on stash variables
28 use Template::Stash::ForceUTF8;
31 my $tt = Template->new(
32 LOAD_TEMPLATES => [ Template::Provider::Encoding->new ],
33 STASH => Template::Stash::ForceUTF8->new,
37 $vars->{foo} = "\x{5bae}\x{5ddd}"; # Unicode flagged
38 $vars->{bar} = "\xe5\xae\xae\xe5\xb7\x9d"; # UTF-8 bytes
40 $tt->process($template, $vars); # this DWIMs
44 Template::Stash::ForceUTF8 is a Template::Stash that forces Unicode
45 flag on stash variables. Best used with L<Template::Provider::Encoding>.
49 L<Template::Provider::Encoding>