Thread: Change/convert encoding?

Change/convert encoding?

From
Erno Kuusela
Date:
hello,

i have a database and in it strings with accented characters in
latin-1 encoding, but the database has been mistakenly created with
unicode encoding. as you all know this makes pg_dump break.

what i'm enquiring is - is there a way to change the encoding
and preserve the data? i only know of one way to specify the
encoding, initdb -e, but afaik that will nuke all the data also.
and i can't use pg_dump, obviously...

i'm using postgresql version 6.5.18.

ps. i also get odd effects like strings with "ä" turning into
"(e6)" at times, i suppose it's also related the incorrect
encoding setting?

   -- erno

Re: Change/convert encoding?

From
Tom Lane
Date:
Erno Kuusela <erno@iki.fi> writes:
> i have a database and in it strings with accented characters in
> latin-1 encoding, but the database has been mistakenly created with
> unicode encoding. as you all know this makes pg_dump break.

> what i'm enquiring is - is there a way to change the encoding
> and preserve the data? i only know of one way to specify the
> encoding, initdb -e, but afaik that will nuke all the data also.

I believe you could just reach into pg_database and update the
encoding field for that DB.  Probably best to do so with a backend
connected to a different DB, like template1.

            regards, tom lane