Re: Encoding from CopyManager.copyIn()
От | Markus Kickmaier |
---|---|
Тема | Re: Encoding from CopyManager.copyIn() |
Дата | |
Msg-id | 4582381.102821248785518175.JavaMail.root@donald.apus.co.at обсуждение исходный текст |
Ответ на | Re: Encoding from CopyManager.copyIn() (Oliver Jowett <oliver@opencloud.com>) |
Список | pgsql-jdbc |
Hi, what I've done now is following: - I converted my database to UTF8. - I use a OutputStreamWriter with UTF8 as encoding to fill my stream for the copy statement. Now it works. Thanks for your help. BR, Markus ----- "Oliver Jowett" <oliver@opencloud.com> schrieb: > Markus Kickmaier wrote: > > Thanks for the Responses Daniel and Kris, > > > > but i just don't get it work. I know now what exactly my problem > is. > > I have a SQL_ASCCI encoded database. The JDBC driver uses UNICODE as > client_encoding. So if i want to copy an 'umlaut' like ü into a table > i get the error: invalid byte sequence for UTF8... > > > > If i test this in pgAdmin it is the same. But if i set > client_encoding to 'SQL_ASCII' in pgAdmin it works fine. > > Trying this for my JDBC connection i get a PSQL Exception saying > that the client_encoding parameter was changed to SQL_ASCII and the > JDBC driver just works correctly with UNICODE. > > > > Any ideas? I'm rather sure it would work if JDBC would let me use > SQL_ASCII. > > You should convert your database to an appropriate encoding for the > data > it contains (perhaps LATIN1?). If the database encoding is SQL_ASCII, > > the JDBC driver has no way of knowing how to convert bytes >127 to > Java's UTF-16 String representation. > > Basically, SQL_ASCII is only going to work with the JDBC driver if you > > only store 7-bit ASCII, or if you happen to be very lucky and have all > > clients everywhere use a client_encoding of UNICODE. > > -O
В списке pgsql-jdbc по дате отправления: