| From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | MauMau <maumau307(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: [bug fix] strerror() returns ??? in a UTF-8/C database with LC_MESSAGES=non-ASCII |
| Date: | 2013-09-09 12:29:58 |
| Message-ID: | 522DBF46.30308@gmx.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 9/6/13 10:37 AM, Tom Lane wrote:
> BTW: personally, I would say that what you're looking at is a glibc bug.
> I always thought the contract of gettext was to return the ASCII version
> if it fails to produce a translated version. That might not be what the
> end user really wants to see, but surely returning something like "???"
> is completely useless to anybody.
The question marks come from iconv. Take a look at what this prints:
iconv po/ja.po -f utf-8 -t us-ascii//translit
If you use GNU libiconv, this will print a bunch of question marks.
Other implementations will probably not understand //translit and just
fail the conversion.
I think the use of //translit by gettext is poor judgement, because my
experiments show that the quality of the results is poor and not useful
for a user interface.
My suggestion in this matter is to disable gettext processing when
LC_CTYPE is set to C. We could log a warning when LC_MESSAGES is set to
something and LC_CTYPE is set to C. Or just do the warning and keep
logging. Something like that.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Vesa-Matti J Kari | 2013-09-09 12:36:15 | Re: Strange hanging bug in a simple milter |
| Previous Message | MauMau | 2013-09-09 12:29:44 | Is this a correct recommendation for Solaris 10 kernel settings? |