Change/convert encoding?
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
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