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

Thanks a lot for your feedback.

One thing thougth:

I will use TT via CGI::Application::Plugin::TT running under mod_perl.

Does that change anything?

  • Comment on Re^2: Template Toolkit and different encodings

Replies are listed 'Best First'.
Re^3: Template Toolkit and different encodings
by graff (Chancellor) on Dec 23, 2010 at 14:21 UTC
    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 %]" ?>
      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!