in reply to Re^2: Template Toolkit and different encodings
in thread Template Toolkit and different encodings

I will use TT via CGI::Application::Plugin::TT

That's how I normally use TT as well. (I had to go back to the manual to see about running it by itself.)

Does that change anything?

No -- just make sure that STDOUT is set to the same encoding as the template string variables, as shown in the example; then use the plugin syntax in the normal way to invoke the TT "process" function.

If you're sending HTML to a client, you might want to look up how CGI::Application manages the MIME header that precedes the <html> tag, so that the client (browser) knows what encoding to use. But if you're sending XML, then starting the template like this should suffice:

<?xml version="1.0" encoding="[% enc %]" ?>

Replies are listed 'Best First'.
Re^4: Template Toolkit and different encodings
by morgon (Priest) on Jan 07, 2011 at 15:50 UTC
    I will use TT via CGI::Application::Plugin::TT
    Does that change anything?

    No -- just make sure that STDOUT is set to the same encoding as the template string variables.

    Unfortunatly I can't get it to work at the moment.

    I run TT via CGI::Application::Plugin::TT under mod_perl.

    I need to generate output as UTF-8 and ISO-8851-1.

    The templates do not contain anything that would make a difference with respect to the encoding, so the problem is getting the template-variables encoded properly.

    The variables come from a database that uses utf-8.

    My understanding was that the TT-Plugin creates a string that is eventually printed to STDOUT to communicate the response to apache.

    So I thought changing the encoding of STDOUT via binmode would be sufficient, but it does not work - I get utf-8 regardless of what I set the encoding of STDOUT to.

    So I assume mod_perl and apache communicate not via STDOUT...can someone help me here?

    Many thanks!