Change/convert encoding?

Started by Erno Kuuselaover 25 years ago2 messagesgeneral
Jump to latest
#1Erno Kuusela
erno@iki.fi

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Erno Kuusela (#1)
Re: Change/convert encoding?

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