Michael Lackhoff wrote:
> use utf8;
> sub streamtest {
> my $self = shift;
> $self->header_type('none'); # for streaming
> # Write the content type to the client...
> my $r = $self->param('r');
> $r->content_type( 'text/html; charset=utf-8' );
>
> print q{<html>
> <body>
> <h1>Streaming-Test äüß </h1>
> </body>
> </html>
> };
> return '';
> }
Is this a mod_perl problem? You didn't mention if it occurred in plain CGI or
not.
> The script with the extended characters is written in UTF8 but the
> resulting page has the extended characters in latin1.
> Background: This is a runmode of a CGI::Application but it shouldn't
> make a difference because I don't use the CGI::Application magic
> (sending headers and output of the result) in this runmode.
Why aren't you using C::A's help in this case? I've done UTF-8 in C::A before.
The key is to tell CGI.pm that you're using UTF-8 (but get v3.30 from RT since
2.29 has UTF-8 issues).
> Any ideas what may be going wrong here and why the output is converted
> back to latin1?
CGI.pm uses STDOUT to send the contents. So we need
binmode(STDOUT, ':utf8');
I'm not sure if that works when using $r->print() though.
--
Michael Peters
Developer
Plus Three, LP