Hiho, is everyone using the Gtk2 and Locale::TextDomain modules successfully with utf-8 locales? Here a short description of my problems and some diagnostics: - I use Locale::TextDomain with 7bit message id's and utf8 message catalogs - everything works fine if I set an iso-latin-1 locale (LC_ALL=de_DE.iso-8859-1) => Locale::TextDomain returns binary resp. iso-latin-1 encoded strings not having the utf-8 flag set => Gtk2 binding converts them to utf-8, since gtk2 always expects utf-8 encoded data => everything displays correctly - but if I set an utf-8 locale (LC_ALL=de_DE.utf-8) I get corrupted output resp. a "latin-1" output of the utf-8 encoded bytes: => Locale::TextDomain returns utf-8 encoded strings BUT still doesn't set the utf-8 flag => Gtk2 binding still converts data to utf-8, because the variables claim to carry non-utf-8 data => we see the typical "twice encoded" utf-8 stuff Some time ago and in another (non Gtk2) context I had a long discussion with Guido Flohr, the author of Locale::TextDomain, about the utf-8 flag and that Locale::TextDomain doesn't set it, even if it returns utf-8 encoded data. He simply don't like the Perl >= 5.8 way of utf-8 handling and think it's better to ignore the utf-8 flag completely, which may work if all affected modules handle this the same ignorant way. But since Gtk2 does it right (in may opinion) we (at least I ;) have a conflict here. The only workaround I can imagine is to wrap Locale::TextDomain's exported functions and set the utf-8 flag on all return values if an utf-8 locale is in effect. Anybody with a better idea? Regards, Joern -- $a=$a[8][67][9][0][42][214][82][78][0][50][69][68][69][82][0][73][78][0] [65][0][20][16][0][68][73][77][69][78][83][73][79][78][65][76][0][65][82 ][82][65][89]=sub{sub _($){print$_[ z]}($z,$i)= _;(++$i)while!$z->[$i];$ s+=$i;_ chr($i+32);$s!=2292&&&$a($z->[$i],$c>>$e)};&$a(\ a,$d<<$f);_"\n"
Attachment:
pgpQ9EPSEBfPM.pgp
Description: PGP signature