Re: v8.3 + UTF8 errors when restoring DB - Mailing list pgsql-general

From Dean Gibson (DB Administrator)
Subject Re: v8.3 + UTF8 errors when restoring DB
Date
Msg-id 47D3ECDF.5010303@ultimeth.com
Whole thread Raw
In response to v8.3 + UTF8 errors when restoring DB  ("Mitchell D. Russell" <mitchell.russell@gmail.com>)
Responses Re: v8.3 + UTF8 errors when restoring DB
List pgsql-general
On 2008-03-09 01:45, Mitchell D. Russell wrote:

New to the list, so please forgive me in advance :)


I've been running 8.2 on windows server 2003 for quite some time now. The database that I take care of stores records with various languages in it (russian, chinese, etc) and has been working fine.

I did a PG_dump of the database tonight, and went to restore it to my newly created database (WIN2152 encoding), which worked fine, but when I go to retrieve the data via my code (.NET c#), I get errors like :

character 0x8f of encoding "WIN1252" has no equivalent in "UTF8"
character 0x81 of encoding "WIN1252" has no equivalent in "UTF8"
character 0x9d of encoding "WIN1252" has no equivalent in "UTF8"

The database driver is set to unicode mode, so I turned that off, but of course end up with gibberish instead of the russian and chinese that were there before.

So then I tried creating a new database with unicode formatting and restoring my 8.2 dump file to that, when I do that, I get these errors (using PSQL):

ERROR: invalid byte sequence for encoding "UTF8": 0x92
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

CONTEXT: COPY cin_tbl_data, line 6
ERROR: invalid byte sequence for encoding "UTF8": 0x99
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

so I just don't know what to do. my 8.2 database used SET client_encoding = 'SQL_ASCII'; according to the dump file - so I can't wrap my head around why I can't get this data to come out.

Any help would be very much appreciated.


Well, you partially hosed yourself when you did the dump using a 'client_encoding' of 'SQL_ASCII'.  If the 8.2 database is still around, redo pg_dump using the '-E' parameter to set the client_encoding to UTF-8, then import the data into your 8.3 database created with a UTF-8 encoding.

If you don't have the 8.2 server around any more, it's a bit more complicated.  How did you do the pg_dump (what format)?

-- 
Mail to my list address MUST be sent via the mailing list.
All other mail to my list address will bounce.

pgsql-general by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: v8.3 + UTF8 errors when restoring DB
Next
From: David Fetter
Date:
Subject: Re: ER Diagram design tools (Linux)