Thread: compare lower case and upper case when encoding is utf-8
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
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
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