Search Postgresql Archives

Re:    Hi,&nbs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Martijn,

Thank you for the reply.

I think the locale settings is a diffrent in my case, and in the logical way, I guess the locale environs should be used by the program in the system C run-time library for the string operating functions such like comparing or something else like that.

I have login as user name 'postgres' and changed the LANG=zh_CN.UTF-8; export LANG and then the locale command output this:
========================================
-bash-3.00$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_ALL=
========================================
So, now i stop the postgres: pg_ctl stop -D ./data_euc_cn and start it use the UTF-8 encoding data directory: pg_ctl start -D ./data_utf8. But the sort result for the Chinese characters is still wrong. And I notice that the sort result is diffrent from the LANG=zh_CN.GB18030.

I think I still have not a direct way to solve this. Or, maybe, the postgres uses the locale settings from the other than the current postgres user?
Any suggestions?


-- Steve Yao



-----原始邮件-----
发件人:"Martijn van Oosterhout"
发送时间:2006-10-04 17:42:00
收件人:"stevegy"
抄送:pgsql-general@xxxxxxxxxxxxxx
主题:Re: [GENERAL] Hi, ever


On Wed, Oct 04, 2006 at 07:50:12AM +0800, stevegy wrote:

> My testing database is initdb -E UTF8. And i guess the solaris can

> not handle the UTF-8 sorting with the LC_COLLATE="zh_CN.GB18030". But

> i need to prove this.



A locale can only handle one charset, usually the one given by "locale

charset". So if it handles sorting in GB18030 then by definition it

can't handle UTF-8.



> So i plan to change the locale of my solaris box. I have installed

> the zh_CN.UTF8 on it. I am looking for a way to change the solaris

> locale. If this changing need to re-boot machine that I should do

> this in some not busy time for the live application.



The locale is not a global setting. If you set the LANG or LC_ALL

variable, it will change the locale of any program run with that

environment variable. The default is the "C" locale.



Have a nice day,

--

Martijn van Oosterhout <kleptog@xxxxxxxxx> http://svana.org/kleptog/

> From each according to his ability. To each according to his ability to litigate.






3G 时 代 来 临 了,坚 决 对 传 统 邮 箱 说 不 !
新 一 代 极 速 3G 邮 箱 闪 亮 登 场 ,280 兆 网 盘 免 费 送 ! 点 击 此 处 注 册

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux