Re: Missing Bug-Report #5904?
От | Torsten Zühlsdorff |
---|---|
Тема | Re: Missing Bug-Report #5904? |
Дата | |
Msg-id | 4D764A27.3070707@meisterderspiele.de обсуждение исходный текст |
Ответ на | Re: Missing Bug-Report #5904? (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
Hello, >>>> # SET lc_time = "de_DE.UTF-8"; >>>> # SELECT to_char('2011-03-04 00:00:01'::date, 'TMMonth YYYY'); >>>> to_char >>>> ----------- >>>> MäRz 2011 > >>> I can reproduce the above when the database encoding is not UTF8 or >>> lc_ctype isn't a UTF8 locale. > >> Hm... encoding of the database is UTF8. The lc_ctype is 'C'. > > Right, that was the same case I checked. In C locale, ä is not a > letter, so you get the above from the initcap transformation. > >> But don't that mean, that the translation of the timestamp to languages >> with other umlauts should also be wrong. For example to "fr_FR.UTF-8"? > > Possibly, I haven't checked. If they have any month names with > non-ASCII characters in the middle, they'd see the same thing. > You would certainly also get undesirable results from TMMONTH, since > it wouldn't know how to uppercase ä. In my view none of this is > a Postgres bug --- the correct fix is to use locale settings that > correspond to the behavior you want. Hm... in my point of view it's a bug, but not necessarily a PG bug. My desired result is the correct translated output in different languages. Now i know that this is not possible, because i have to use the correct lc_ctype for the entire database, which can't be changed after the database-creation. The only work-around seems to be to handle the translation myself. That's very ugly and makes the use of TMMonth pointless, if you have to take care of the result-output before you use the database. Thanks to all for your time and help, Torsten
В списке pgsql-bugs по дате отправления: