Thread: server , client encoding issue

server , client encoding issue

From
"surabhi.ahuja"
Date:
 hi all
 
i am facing a problem and here it is:
 
i install the following (postgres) rpms as root
postgresql-libs-8.0.0-1PGDG.i686.rpm
postgresql-8.0.0-1PGDG.i686.rpm
and
postgresql-server-8.0.0-1PGDG.i686.rpm
 
now i try to create a database
 
/usr/bin/createdb temp
 
when i connect to it
it shows: server_encoding : LATIN9
and client_encoding: LATIN9
 
from where did it get these values
i want them to be UNICODE.
 
please help
( i know there is a workaround to this problem - 
/usr/bin/createdb -E UNICODE temp )
 
but this is happening at a particular machine . On other machines it is UNICODE.
 
thanks
regards
surabhi

Re: server , client encoding issue

From
Richard Huxton
Date:
surabhi.ahuja wrote:
> when i connect to it
> it shows: server_encoding : LATIN9
> and client_encoding: LATIN9
>
> from where did it get these values

 From your environment - the machine is presumably defaulting to some
locale that uses LATIN9 for it's character-set.

> i want them to be UNICODE.
>
> please help
> ( i know there is a workaround to this problem -
> /usr/bin/createdb -E UNICODE temp )
>
> but this is happening at a particular machine . On other machines it is UNICODE.

It's not really a workaround - I always specify encoding for the
databases I create (precisely to avoid this sort of problem).

--
   Richard Huxton
   Archonet Ltd

Re: server , client encoding issue

From
"surabhi.ahuja"
Date:
 how can i check my environment ? i mean the locale settings?


From: Richard Huxton [mailto:dev@archonet.com]
Sent: Tue 10/18/2005 6:04 PM
To: surabhi.ahuja
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] server , client encoding issue

***********************
Your mail has been scanned by InterScan VirusWall.
***********-***********


surabhi.ahuja wrote:
> when i connect to it
> it shows: server_encoding : LATIN9
> and client_encoding: LATIN9

> from where did it get these values

 From your environment - the machine is presumably defaulting to some
locale that uses LATIN9 for it's character-set.

> i want them to be UNICODE.

> please help
> ( i know there is a workaround to this problem - 
> /usr/bin/createdb -E UNICODE temp )

> but this is happening at a particular machine . On other machines it is UNICODE.

It's not really a workaround - I always specify encoding for the
databases I create (precisely to avoid this sort of problem).

--
   Richard Huxton
   Archonet Ltd


Re: server , client encoding issue

From
"surabhi.ahuja"
Date:
i checked the locale it is giving:
 
 LANG=en_US.iso885915
LC_CTYPE="en_US.iso885915"
LC_NUMERIC=en_US
LC_TIME="en_US.iso885915"
LC_COLLATE="en_US.iso885915"
LC_MONETARY="en_US.iso885915"
LC_MESSAGES="en_US.iso885915"
LC_PAPER="en_US.iso885915"
LC_NAME="en_US.iso885915"
LC_ADDRESS="en_US.iso885915"
LC_TELEPHONE="en_US.iso885915"
LC_MEASUREMENT="en_US.iso885915"
LC_IDENTIFICATION="en_US.iso885915"
LC_ALL=
is it "lang" that is "LATIN9"


From: Richard Huxton [mailto:dev@archonet.com]
Sent: Tue 10/18/2005 6:04 PM
To: surabhi.ahuja
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] server , client encoding issue

***********************
Your mail has been scanned by InterScan VirusWall.
***********-***********


surabhi.ahuja wrote:
> when i connect to it
> it shows: server_encoding : LATIN9
> and client_encoding: LATIN9

> from where did it get these values

 From your environment - the machine is presumably defaulting to some
locale that uses LATIN9 for it's character-set.

> i want them to be UNICODE.

> please help
> ( i know there is a workaround to this problem - 
> /usr/bin/createdb -E UNICODE temp )

> but this is happening at a particular machine . On other machines it is UNICODE.

It's not really a workaround - I always specify encoding for the
databases I create (precisely to avoid this sort of problem).

--
   Richard Huxton
   Archonet Ltd


Re: server , client encoding issue

From
Richard Huxton
Date:
surabhi.ahuja wrote:
> i checked the locale it is giving:
>
>  LANG=en_US.iso885915
> LC_CTYPE="en_US.iso885915"

If you Google for "ISO-8859-15 Latin9" the top two results seem to give
details. Oh - there are two naming systems for character sets, just to
make things even more complicated.

Now, traditionally you'd have used Latin1 (ISO-8859-1), but the
introduction of the Euro meant they needed to introduce a new character.
They took the opportunity to make some other changes too and called the
results Latin9 (ISO-8859-15).

OK - now the original problem was with a database not having a UNICODE
encoding. It does look like this is because the environment on this
machine is Latin9 rather than UTF-8. It's easy to have this problem, and
I always recommend setting the encoding explicitly when creating a
database cluster (initdb --encoding=UTF8). If you installed from a
package, it might have chosen a default for you though.

HTH
--
   Richard Huxton
   Archonet Ltd