From: | "Marco Bizzarri" <marco(dot)bizzarri(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Dumping in LATIN1 and restoring in UTF-8 |
Date: | 2006-07-05 14:43:22 |
Message-ID: | 3f0d61c40607050743m28ed89e6h40b6fe7c4d0b9e20@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi all.
Here is my use case: I've an application which uses PostgreSQL as
backend. Up to now, the database was encoded in SQL_ASCII or LATIN1.
Now, we need to migrate to UTF-8.
What we tried, was to:
1) dump the database using pg_dump, in tar format (we had blob);
2) modifying the result, using some conversion tool (like recode)
3) destroying the old database
4) recreating the database with UNICODE setting
5) restoring the database using pg_restore
The result was not what I expected. The pg_restore was using the
LATIN1 encoding to encode the strings, resulting in a LATIN1 encoded
in UTF-8...
The problem lied in the toc.dat file, which stated that the client
encoding was LATIN1, instead of UTF-8.
The solution in the end has been to manually modifying the toc.dat
file, substituting the LATIN1 string with UTF-8 (plus a space, since
the toc.dat is a binary file).
Even though it worked for us, I wonder if there is any other way to
accomplish the same result, at least to specify the encoding for the
restore.
Regards
Marco
--
Marco Bizzarri
http://notenotturne.blogspot.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Bjørn T Johansen | 2006-07-05 14:46:55 | Help making a plpgsql function? |
Previous Message | Michael Fuhr | 2006-07-05 14:30:16 | Re: How to hide NOTICE messages in psql.exe ? |