Обсуждение: compare lower case and upper case when encoding is utf-8

Поиск
Список
Период
Сортировка

compare lower case and upper case when encoding is utf-8

От
Quan Zongliang
Дата:
Hi hackers,

I found that lower case is less than upper case when the db is created 
with utf8.
I tried below    locale   en_US.utf8   'A'<'a'     false    locale   ja_JP.utf8   'A'<'a'     true    locale
zh_CN.utf8  'A'<'a'     false
 
Under Windows    locale   Chinese_China   'A'<'a'     false

I am not sure it is normal or not.
But in Chinese, the lower case should be greater than upper, same as 
locale C.

I made some code try to fix it.
It seems to work fine.

Quan Zongliang



Re: compare lower case and upper case when encoding is utf-8

От
Peter Eisentraut
Дата:
On lör, 2012-06-16 at 16:21 +0800, Quan Zongliang wrote:
> I found that lower case is less than upper case when the db is
> created 
> with utf8.
> I tried below
>      locale   en_US.utf8   'A'<'a'     false
>      locale   ja_JP.utf8   'A'<'a'     true
>      locale   zh_CN.utf8   'A'<'a'     false
> Under Windows
>      locale   Chinese_China   'A'<'a'     false
> 
> I am not sure it is normal or not.
> But in Chinese, the lower case should be greater than upper, same as 
> locale C.

The operating system locale determines that, so you need to look there
if you don't agree with the result.

http://wiki.postgresql.org/wiki/FAQ#Why_do_my_strings_sort_incorrectly.3F



Re: compare lower case and upper case when encoding is utf-8

От
Quan Zongliang
Дата:
On 2012/6/18 7:13, Peter Eisentraut wrote:
> On lör, 2012-06-16 at 16:21 +0800, Quan Zongliang wrote:
>> I found that lower case is less than upper case when the db is
>> created
>> with utf8.
>> I tried below
>>       locale   en_US.utf8   'A'<'a'     false
>>       locale   ja_JP.utf8   'A'<'a'     true
>>       locale   zh_CN.utf8   'A'<'a'     false
>> Under Windows
>>       locale   Chinese_China   'A'<'a'     false
>>
>> I am not sure it is normal or not.
>> But in Chinese, the lower case should be greater than upper, same as
>> locale C.
> The operating system locale determines that, so you need to look there
> if you don't agree with the result.
>
> http://wiki.postgresql.org/wiki/FAQ#Why_do_my_strings_sort_incorrectly.3F
>
>
I see, thank you.

Quan Zongliang