Re: [COMMITTERS] pgsql: Explicitly bind gettext() to the UTF8 locale when in use.

From: Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: PG Hackers <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Hiroshi Saito <z-saito(at)guitar(dot)ocn(dot)ne(dot)jp>
Subject: Re: [COMMITTERS] pgsql: Explicitly bind gettext() to the UTF8 locale when in use.
Date: 2008-11-24 13:57:26
Message-ID: 492AB2C6.9090709@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Magnus Hagander wrote:
> Hiroshi Inoue wrote:
>> Hi Magnus and all,
>>
>> Magnus Hagander wrote:
>>> Log Message:
>>> -----------
>>> Explicitly bind gettext() to the UTF8 locale when in use.
>>> This is required on Windows due to the special locale
>>> handling for UTF8 that doesn't change the full environment.
>> Thanks to this change UTF-8 case was solved but Japanese users
>> are still unhappy with Windows databases with EUC_JP encoding.
>> Shift_JIS which is a Japanese encoding under Windows doesn't
>> match any server encoding and causes a crash with the use of
>> gettext. So Saito-san removed ja message catalog just before
>> the 8.3 release.
>>
>> Attached is a simple patch to avoid the crash and enable the
>> use of Japanese message catalog.
>> Please apply the patch if there's no problem.
>
> Hi!
>
> It will clearly also need an update to the comment, but I can take care
> of that.
>
> I assume you have tested this?

Though I myself didn't test it, Saito-san tested it.

> The comment says that it works because we
> are handling UTF8 on a special way on Windows,

ISTM UTF-8 isn't a special case.
In fact the comment also mentions the following.

* In future we might want to call bind_textdomain_codeset
* unconditionally, but that....

> If your database is in EUC_JP, I don't see why gettext() isn't picking
> it up properly in the first place..

In Japan 2 encodings (EUC_JP and Shift_JIS) are often used.
EUC_JP is mainly used on *nix and on Windows Shift_JIS is
used. We use EUC_JP not Shift_JIS as the server encoding

> And why do we need that on Windows only, and not on other platforms?

because Shift_JIS isn't allowed as a server encoding. So
the Japanese Windows native message encoding Shift_JIS never
matches the server encoding EUC_JP and a conversion between
Shitt_jis and EUC_JP is necessarily needed.

regards,
Hiroshi Inoue

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message User Fxjr 2008-11-24 14:01:24 npgsql - Npgsql2: Fixed problem where parameters size wasn't being
Previous Message Magnus Hagander 2008-11-24 13:55:03 Re: pgsql: Add support for matching wildcard server certificates to the new

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2008-11-24 14:01:49 Re: blatantly a bug in the documentation
Previous Message Dave Page 2008-11-24 13:56:59 Re: blatantly a bug in the documentation