Bruce Momjian wrote:
> Bruce Momjian wrote:
>> Hiroshi Inoue wrote:
>>> Bruce Momjian wrote:
>>>> Hiroshi Inoue wrote:
>>>>> Bruce Momjian wrote:
>>>>>> Where are we on this issue?
>>>>> Oops I forgot it completely.
>>>>> I have a little improved version and would post it tonight.
>>>> Ah, very good. Thanks.
>>> Attached is an improved version.
>> I spent many hours on this patch and am attaching an updated version.
>> I have restructured the code and added many comments, but this is the
>> main one:
>>
>> * Ideally, the server encoding and locale settings would
>> * always match. Unfortunately, WIN32 does not support UTF-8
>> * values for setlocale(), even though PostgreSQL runs fine with
>> * a UTF-8 encoding on Windows:
>> *
>> * http://msdn.microsoft.com/en-us/library/x99tb11d.aspx
>> *
>> * Therefore, we must set LC_CTYPE to match LC_NUMERIC and
>> * LC_MONETARY, call localeconv(), and use mbstowcs() to
>> * convert the locale-aware string, e.g. Euro symbol, which
>> * is not in UTF-8 to the server encoding.
>>
>> I need someone with WIN32 experience to review and test this patch.
>
> I don't understand why cache_locale_time() works on Windows. It sets
> the LC_CTYPE but does not do any encoding coversion.
Doesn't strftime_win32 do the conversion?
> Do month and
> day-of-week names not work either, or do they work and the encoding
> conversion for numeric/money, e.g. Euro, it not necessary?
db_strdup does the conversion.
regards,
Hiroshi Inoue