On Feb 20, 2014, at 2:19 PM, Dmitry L. <[email protected]> wrote:
> use utf8;
You shouldn’t need this unless you have actual utf8 characters (rather than
escapes) in your source code.
> my $fh = $c->res->write_fh;
> my $test = "\x{41f}\x{440}\x{43e}\x{431}\x{430}";
> utf8::encode($test);
You probably actually want Encode::encode(‘UTF-8’, $test);
> $fh->write($test);
>
> On 20 February 2014 17:45, Sergey Dmitriev <[email protected]>
> wrote:
>> Hello,
>>
>> I'm trying to put some utf8 strings as a part of Catalyst response as
>> follows:
>>
Right, you can’t do that :)
If you try to use the raw write interfaces you have to send bytes not
characters (and so need to encode your utf8 character strings).
>> $c->res->print ( ... )
>> and
>> $c->res->write( ... )
>>
>> line by line.
>>
>> However it dies with
>>
>> Wide character in syswrite at ..... IO/Handle.pm line 474
>>
>> Any ideas how can utf8 be written to response?
>>
>> E.g. set binmode on output handle. Cannot find how.
>> Using Catalyst Runtime 5.90042.
>>
This is not what you want to do.
The handle is already binary - just you’re not writing binary to it, you’re
writing characters (and perl does not know how to translate those characters
into bytes).
Cheers
Tom
_______________________________________________
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/