Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: mod_perl2 and utf8

by jbert (Priest)
on Dec 23, 2009 at 18:18 UTC ( #814134=note: print w/ replies, xml ) Need Help??


in reply to Re: mod_perl2 and utf8
in thread mod_perl2 and utf8

I would expect $r->print to accept a string of bytes just like every other print.

The posted code shows that printing to STDOUT in a cmdline script gives the same result for both strings (because non-mod-perl2 STDOUT has an associated encoding (latin1 by default, changeable to utf8) - either will work if it matches your terminal).

Printing to STDOUT (or using r->print) under apache does not have this property - you get different behaviour for the two approaches.

i.e. the problem as I see it is that STDOUT under mod_perl2 lacks the utf8-awareness built through the rest of the perl I/O layer, with no way of enabling it.

Yes, you can manually encode, but that can necessitate additional copying (you can pass $r as an output destination to TT, which will do the wrong thing if you're working with unicode strings, since it won't call encode. Yes, you can build to a scalar, encode that and print that but it's a shame the extra copy is needed when perl has a mechanism for this which isn't being used.


Comment on Re^2: mod_perl2 and utf8
Replies are listed 'Best First'.
Re^3: mod_perl2 and utf8
by ikegami (Pope) on Dec 23, 2009 at 18:28 UTC

    I would expect $r->print to accept a string of bytes just like every other print.

    The posted code shows that printing to STDOUT in a cmdline script gives the same result for both strings

    I followed up by saying you can instruct print to accept characters by telling it how to handle them. This is done on a per-handle basis, and that's what you did for STDOUT with

    binmode STDOUT, ':utf8';

    You need to do something equivalent with mod_perl's object.

    the problem as I see it is that STDOUT under mod_perl2 lacks the utf8-awareness built through the rest of the perl I/O layer, with no way of enabling it.

    Not knowing anything about the class except what you've told me, I agree. File a bug report.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://814134]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (7)
As of 2015-07-29 01:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls