Обсуждение: Finding bad bye in "invalid byte sequence" error

Поиск
Список
Период
Сортировка

Finding bad bye in "invalid byte sequence" error

От
robert
Дата:
Hi all,

I'm trying to hack my inserts script from mssql to work with postgres
8.1.9 - I can upgrade if need be. I'm getting this error:

psql -h localhost atdev < fuk2.sql
ERROR:  invalid byte sequence for encoding "UTF8": 0xe1204f
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".

I tried:

/var/lib/pgsql> recode ascii..utf8 fuk2.sql
recode: fuk2.sql failed: Invalid input in step `ANSI_X3.4-1968..UTF-8'

And also dos2unix , but nothing is working. 0xe1204f looks like a hex
address, and I'm trying hexdump to find what its complaining about,
but that's not helping either. Any ideas?

Robert

Re: Finding bad bye in "invalid byte sequence" error

От
"Douglas McNaught"
Дата:
On 12/13/07, robert <robertlazarski@gmail.com> wrote:
> Hi all,
>
> I'm trying to hack my inserts script from mssql to work with postgres
> 8.1.9 - I can upgrade if need be. I'm getting this error:
>
> psql -h localhost atdev < fuk2.sql
> ERROR:  invalid byte sequence for encoding "UTF8": 0xe1204f
> 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".

The cleanest way to fix this is to figure out what encoding the data
in your SQL script is (since I am assuming parts of it were dumped
directly out of MSSQL) and set client_encoding to that.  Your data is
almost certainly not straight 7-bit ASCII.

-Doug

Re: Finding bad bye in "invalid byte sequence" error

От
Tom Lane
Дата:
robert <robertlazarski@gmail.com> writes:
> I'm getting this error:

> psql -h localhost atdev < fuk2.sql
> ERROR:  invalid byte sequence for encoding "UTF8": 0xe1204f
> 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".

Well, that isn't UTF8, and it isn't plain ASCII either.  I'm betting
it's a single-byte encoding, probably one of the ISO-8859 series.
Have you looked at the data to see what *you* think the character is?
(Feed the script to psql with -f, not <, to get a line number for
the error.)

            regards, tom lane

Re: Finding bad bye in "invalid byte sequence" error

От
Adrian Klaver
Дата:
On Thursday 13 December 2007 10:38 am, robert wrote:
> Hi all,
>
> I'm trying to hack my inserts script from mssql to work with postgres
> 8.1.9 - I can upgrade if need be. I'm getting this error:
>
> psql -h localhost atdev < fuk2.sql
> ERROR:  invalid byte sequence for encoding "UTF8": 0xe1204f
> 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".
>
> I tried:
>
> /var/lib/pgsql> recode ascii..utf8 fuk2.sql
> recode: fuk2.sql failed: Invalid input in step `ANSI_X3.4-1968..UTF-8'
>
> And also dos2unix , but nothing is working. 0xe1204f looks like a hex
> address, and I'm trying hexdump to find what its complaining about,
> but that's not helping either. Any ideas?
>
> Robert
>
I had a similiar problem and found I had to set the client encoding as
follows:

SET client_encoding = 'windows-1252';

at the top of my import file.


--
Adrian Klaver
aklaver@comcast.net