Re: Character Decoding Problems - Mailing list pgsql-jdbc

From Evan Tsue
Subject Re: Character Decoding Problems
Date
Msg-id 00814A72-CCD0-11D7-9E82-000A95A08104@windsormgmt.com
Whole thread Raw
In response to Re: Character Decoding Problems  (<zy7111@mail.china.com>)
List pgsql-jdbc
Yes, it should work in 7.2.2.  The decodeUTF8 method wasn't introduced
until later.  From the comments in the code, it seems that the reason
for its inclusion was for performance.

Evan

On Tuesday, Aug 12, 2003, at 08:34 US/Eastern, <zy7111@mail.china.com>
wrote:

> I can insert and retrieve chinese into postgresql 7.2.2 successfully.
> Both operation through JDBC.
> It seems you insert text using psql and retrieve using JDBC.
>
> ----- Original Message -----
> From: "Evan Tsue" <evan@windsormgmt.com>
> To: <pgsql-jdbc@postgresql.org>
> Sent: Tuesday, August 12, 2003 1:38 PM
> Subject: [JDBC] Character Decoding Problems
>
>
>> Hi,
>>
>> I've been having problems decoding non-Latin characters using the
>> Postgres JDBC driver.  Here's the situation:  I'm using postgres 7.3.2
>> and I've created a test database using 'createdb -E UNICODE testdb' to
>> ensure that I really am using the UNICODE character set.  Using psql,
>> I
>> created a table using the following command: 'CREATE TABLE messages
>> (message_uid SERIAL PRIMARY KEY, message_text VARCHAR(255))' to test
>> character encoding and decoding.  At that point, I inserted a message
>> that was in English.  I also inserted a message that was in Arabic.  I
>> did a select on that table using psql and the values came back
>> perfectly (I'm using MacOS X, so the characters are displayed
>> correctly).
>> Next, I did a select on the same table via JDBC.  All I had the
>> program do was select on the table and print the results out to
>> standard output.  The message in English was displayed perfectly.
>> However, the message that was in Arabic was displayed as a series of
>> question marks and spaces.
>> I eventually navigated my way through the JDBC driver source to find
>> that the problem is in the decodeUTF8 method in the
>> org.postgresql.core.Encoding class.  Apparently, it doesn't seem to be
>> working properly for non-Western characters.  I replaced the call to
>> that method with a call to the java.lang.String constructor and now
>> everything works perfectly.
>> In addition to Arabic, I took a random sample of Chinese, Japanese,
>> Russian and Korean text and inserted it into the database.  Using the
>> original driver, I get the question marks.  But, when I used the
>> String
>> constructor, everything comes out fine.
>> Could someone please either fix the Encoding.decodeUTF8 method or
>> replace the call to that with a call to the String constructor?
>>
>> Thanks,
>> Evan
>>
>>
>> ---------------------------(end of
>> broadcast)---------------------------
>> TIP 8: explain analyze is your friend
>>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 8: explain analyze is your friend


pgsql-jdbc by date:

Previous
From: "srikanth nagaraju"
Date:
Subject: FW: FW: pgsql - query
Next
From: Paul Thomas
Date:
Subject: Re: FW: FW: pgsql - query