perl-unicode

Re: Printing Unicode from XS

2004-05-14 01:30:09
Nick Ing-Simmons (nick(_at_)ing-simmons(_dot_)net) writes:
As far as you are concerned PerlIO_stderr() is either ready to accept
UTF-8 when you don't have a problem, (other than UTF-8 encoding chars) 
or it is "still" in native mode - presumably some code page or other. 

Or it has been set to utf16-le or whatever!

Even perl can't guess what that is reliably, it just assumes it is 
iso-8859-1 and "downgrades" to that.

Not really sure what you mean, I would expect that PerlIO internally
knows what is up to. But whether there is a supported API where I can
retrieve this I don't know.

Of course, if I say

   PerlIO_printf(PerkIO_stderr(), "%s\n", variable)

Perl cannot make a guess on whether variable is in the same charset or
not as PerlIO is targetted for, but must take the bits as is. (And
barf, if stderr is in UTF-8 and the string is malformed UTF-8.) So I
would have to be responsible for converting to the right decoding.
 
Surely it is not a good
thing to bypass PerlIO completely, and use wprintf or somesuch?

That should not be too bad on stderr (as it is unbuffered) but it isn't
a good thing...

Thanks for the slight encouragement in this direction. I'll see what I
do. As I said, this is not a big deal, since in most cases the error
messages should go through a callback routine in Perl.


-- 
Erland Sommarskog, Stockholm, sommar(_at_)algonet(_dot_)se

<Prev in Thread] Current Thread [Next in Thread>