Hello, Igor! I can repeat your problem using your directions. Looks like Plack::Middleware::Lint got enabled by default in development environments somewhere in April and together with Dancer::Template::TemplateToolkit it leads to your error. There is a simple way to workaround the error. You may switch to Template::Simple by commenting out "template" setting in config.yml. Proper fix would be to apply this patch to your Dancer: diff --git a/lib/Dancer/Template/TemplateToolkit.pm b/lib/Dancer/Template/Templa index 0e092db..4bdb717 100644 --- a/lib/Dancer/Template/TemplateToolkit.pm +++ b/lib/Dancer/Template/TemplateToolkit.pm @@ -19,6 +19,7 @@ sub init { my $tt_config = { ANYCASE => 1, ABSOLUTE => 1, + ENCODING => 'utf8', %{$self->config}, }; And then specify "charset: utf8" in config.yml. (to all: we should think about making charset: utf8 the default) Igor, can you test it? -- Alex Kapranoff. 2010/7/7 <igor.bujna@post.cz>
Hello, I have problem, when starting my dancer aplication with plackup and in template use UTF8 characters such as "Čeština je pěkný jazyk". When I start aplication via Dancer start skript and after render the page, everything is ok. But when i start this via plackup and after render page i get message "body must be bytes and should not contain wide characters (UTF-8 strings)". This message is in file Plack/Middleware/Lint.pm in 'sub validate_res()' where test is:
if (ref $res->[2] eq 'ARRAY' && grep utf8::is_utf8($_), @{$res->[2]}) { $croak->('body must be bytes and should not contain wide characters (UTF-8 strings).'); }
When i comment this test the aplication, then run OK. I try this on http://github.com/sukria/ThisShit, when i put in main layout my UTF8 text "Čeština je pěkný jazyk". I think this problem is with plack, which can't use UTF8 text for rendering :( _______________________________________________ Dancer-users mailing list Dancer-users@perldancer.org http://www.backup-manager.org/cgi-bin/listinfo/dancer-users