On 13 Jul 2009, at 15:33, Paul Makepeace wrote:

Summary: this turns out to be an issue with Catalyst::Engine::HTTP's
Remote handle not being set to UTF-8.


Setting the remote handle to utf8 makes perl automagically encode everything from a utf8 character string into a byte string (for you).

This isn't the engine's job.

It's the rendering pipeline's job to ensure that you have a document whos body is a string of bytes (rather than perl's internal characters).

Catalyst::Plugin::Unicode does this for you by calling uft8::encode (the perl internal character string is encoded into a byte string (in utf8)).


my $error = "It\x{2019}s crazy";
my $template = \'[% foo %]';  # or 'path/to/template';

my $output = $view->render($c, $template, {foo => $error});
binmode(*STDOUT, ':utf8');
print "Output: $output\n";
__END__

It turns out that it's not the rendering in TT at all(!) as evidenced
by this test script working.

**

So I can now produce this hard crash by replacing
MyApp::View::TT::render with sub render { "\x{2639}" }. Digging even
further back I found this has it work,


I can't see a crash at all here, that's shitty :/.

Cheers
t0m


_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to