Thread: BUG #2071: ERROR: invalid multibyte character for locale

BUG #2071: ERROR: invalid multibyte character for locale

From
"Prakash Nair"
Date:
The following bug has been logged online:

Bug reference:      2071
Logged by:          Prakash Nair
Email address:      prakashblr@hotmail.com
PostgreSQL version: 8.0.4
Operating system:   RHES
Description:        ERROR:  invalid multibyte character for locale
Details:

Hello,

Got the error in postgres console when we do a lower() or upper().

Postgres console gives following error,

ERROR:  invalid multibyte character for locale
HINT:  The server's LC_CTYPE locale is probably incompatible with the
database encoding.

Can any one please help me, I need to use Unicode encoding for my database.
(Not able to upgrade to postgres 8.10. as I was getting someother issues
when I try to restore  database)

Looks forward for anyone's fast reply.

Thanks,
Prakash

Re: BUG #2071: ERROR: invalid multibyte character for locale

From
tomas@tuxteam.de (Tomas Zerolo)
Date:
On Fri, Nov 25, 2005 at 11:55:44AM +0000, Prakash Nair wrote:
>=20
> The following bug has been logged online:
>=20
> Bug reference:      2071
> Logged by:          Prakash Nair
> Email address:      prakashblr@hotmail.com
> PostgreSQL version: 8.0.4
> Operating system:   RHES
> Description:        ERROR:  invalid multibyte character for locale
> Details:=20
>=20
> Hello,
>=20
> Got the error in postgres console when we do a lower() or upper().
>=20
> Postgres console gives following error,
>=20
> ERROR:  invalid multibyte character for locale
> HINT:  The server's LC_CTYPE locale is probably incompatible with the
> database encoding.
>=20
> Can any one please help me, I need to use Unicode encoding for my databas=
e.
> (Not able to upgrade to postgres 8.10. as I was getting someother issues
> when I try to restore  database)

See the related, previous post.

Basically there are four places where encoding might be relevant:

- Did you create the database in utf-8 encoding? (probably yes)

- What is the nevironment of the server process? That is: what does the
  shell command 'locale' say when it is issued in the same environment
  as the server starts? (that is not necessarily the environment you get
  if you start a shell!). Try, e.g. putting ''export LANG=3Dus_US.UTF-8''
  just before the server is called (typically in /etc/init.d/postgresql
  or thereabout.

- What is your client's encoding (issue the SQL command ''SHOW
  CLIENT_ENCODING'' to learn about that (or ''SET CLIENT_ENCODING'' to
  change that)

- What is the locale of your client? (if it's on an unix-like system,
  see above. Otherwise I have no idea).

Hope that helps
-- tomas

Re: BUG #2071: ERROR: invalid multibyte character for locale

From
Tom Lane
Date:
tomas@tuxteam.de (Tomas Zerolo) writes:
> - What is the nevironment of the server process? That is: what does the
>   shell command 'locale' say when it is issued in the same environment
>   as the server starts? (that is not necessarily the environment you get
>   if you start a shell!). Try, e.g. putting ''export LANG=us_US.UTF-8''
>   just before the server is called (typically in /etc/init.d/postgresql
>   or thereabout.

In recent PG versions you can do SHOW LC_COLLATE and/or SHOW LC_CTYPE
to verify the locale settings the server is using.  Note that these are
locked down based on the environment seen by initdb --- you can't change
them just by inserting an environment setting into the postmaster start
script.

            regards, tom lane

Re: BUG #2071: ERROR: invalid multibyte character for locale

From
"Prakash Nair"
Date:
Thanks All.
I have got a solution. When we give initdb, given it with --locale=C and created database with 'UNICODE'.
This one worked. as of now everything seems to be working. I hope , there wont be any issues, please let me know, if
youhave any suggestions. 
Thanks,
Prakash.




From:  Tom Lane <tgl@sss.pgh.pa.us>To:  tomas@tuxteam.de (Tomas Zerolo)CC:  Prakash
Nair<prakashblr@hotmail.com>, pgsql-bugs@postgresql.orgSubject:  Re: [BUGS] BUG #2071: ERROR: invalid
multibytecharacter for localeDate:  Sat, 26 Nov 2005 11:21:11 -0500tomas@tuxteam.de (Tomas Zerolo)
writes:>- What is the nevironment of the server process? That is: what does the>   shell command
'locale'say when it is issued in the same environment>   as the server starts? (that is not necessarily
theenvironment you get>   if you start a shell!). Try, e.g. putting ''export
LANG=us_US.UTF-8''>  just before the server is called (typically in /etc/init.d/postgresql>  
or 
thereabout.In recent PG versions you can do SHOW LC_COLLATE and/or SHOW LC_CTYPEto verify the locale settings the
serveris using.  Note that these arelocked down based on the environment seen by initdb --- you can't
changethemjust by inserting an environment setting into the postmaster startscript.regards, tom
lane---------------------------(endof broadcast)---------------------------TIP 3: Have you checked our extensive
FAQ?                http://www.postgresql.org/docs/faq