Syntactic Confectionery Delight | |
PerlMonks |
POSIX::strftime encodingby squentin (Sexton) |
on Aug 24, 2010 at 20:10 UTC ( [id://857018]=perlquestion: print w/replies, xml ) | Need Help?? |
squentin has asked for the wisdom of the Perl Monks concerning the following question: How do I get a utf8 time string using POSIX::strftime ? When using a utf8 locale, for example fr_FR.utf8, the output of POSIX::strftime is encoded in utf8 but without the utf8 flag on, ie: returns a byte string and not a character string. So when using utf8::upgrade on it (what the gtk2 bindings do), or when printing it to a file using ">:utf8", the non-ascii characters become garbage. And of course, when using a non-utf8 locale such as fr_FR, the return value of POSIX::strftime is encoded in a locale specific encoding. So what is the best way to get a proper utf8 string ? Do I really have to look at the locale value myself to know how to convert the string ? Shouldn't that behavior be considered a bug ? (though probably hard to fix without breaking some existing programs) It should at least be mentioned in the documentation. example code:
(tested with perl v5.10.1 and v5.12.1)
Back to
Seekers of Perl Wisdom
|
|