BUG #2071: ERROR: invalid multibyte character for locale

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

BUG #2071: ERROR: invalid multibyte character for locale

Prakash Nair

The following bug has been logged online:

Bug reference:      2071
Logged by:          Prakash Nair
Email address:      [hidden email]
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

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
Reply | Threaded
Open this post in threaded view
|

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

tomas-4
On Fri, Nov 25, 2005 at 11:55:44AM +0000, Prakash Nair wrote:

>
> The following bug has been logged online:
>
> Bug reference:      2071
> Logged by:          Prakash Nair
> Email address:      [hidden email]
> 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)
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=us_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


signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

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

Tom Lane-2
[hidden email] (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

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq
Reply | Threaded
Open this post in threaded view
|

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

Prakash Nair

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 you have any suggestions.

Thanks,

Prakash.


From:  Tom Lane <[hidden email]>
To:  [hidden email] (Tomas Zerolo)
CC:  Prakash Nair <[hidden email]>, [hidden email]
Subject:  Re: [BUGS] BUG #2071: ERROR: invalid multibyte character for locale
Date:  Sat, 26 Nov 2005 11:21:11 -0500
[hidden email] (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

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

                http://www.postgresql.org/docs/faq