Обсуждение: 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