Thread: pgsql, java and accents
Hi there! Running Red Hat Linux 7.1 and PostgreSQl 7.1.3 installed fomr the PGDG rpms availabe at postgresql.org. My Java apps (using IBM Java SDK 1.3.0) works fone with the database, but all accented characters (á, ã ó, ç, ...) get garbaged. From psql I can insert and see the acents but Java cannot insert or read the accents. Is this a bug of the driver or something I can fix with a simple configuration? I've alread read posggresql manual and found nothing. :-( []s, Fernadno Lozano
Fernando Lozano <fsl@centroin.com.br> writes: > Running Red Hat Linux 7.1 and PostgreSQl 7.1.3 installed fomr the PGDG > rpms availabe at postgresql.org. My Java apps (using IBM Java SDK 1.3.0) > works fone with the database, but all accented characters (�, � �, �, > ...) get garbaged. > From psql I can insert and see the acents but Java cannot insert or > read the accents. Is this a bug of the driver or something I can fix > with a simple configuration? I believe the JDBC driver is sensitive to the character set encoding reported by the database, because it will try to convert encodings to what Java wants. psql on the other hand is probably just passing the characters through without any munging. Try psql -l to see what encoding is reported. You may need to drop and recreate the database if it's the wrong encoding. regards, tom lane
Hi there! Found the cause and I guess many people will be surprised. I found the info on the JDBC 2.0 conformance tests at jdbc.postgresql.org. It looks that recent versions of PostgreSQL, if compiled without multi-byte characters suport (as are the RPM packages) will *allways* respond to the JDBC driver it's working on US7_ASCII. That's why I could not read nor write accents from Java, only from psql. Java was told to use 7-but ASCII. The workaround is described on the same doc: you have to append "?charSet=ISO8859-1" to the connectionURL (or pass it as properties). Actually the doc suggested UTF-8 but it didn't worked for me. ISO8859-1 worked fine. Hope this helps other non-english speakers like me. :-) []s, Fernando Lozano