pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Kurt Overberg <kurt@hotdogrecords.com>
To: LEON <ldai@accunettech.com>
Cc: pgsql-sql@postgresql.org
Cc: pgsql-jdbc@postgresql.org
Subject: Re: [SQL] JDBC encoding problem
Date: Wed, 06 Aug 2003 10:18:55 -0400
Message-ID: <3F310E4F.6080102@hotdogrecords.com> (raw)
In-Reply-To: <001201c35bb7$8c945520$1f00a8c0@leon>
References: <20030726193947.B1636@natasha.ward.six>
	<3F2FE52E.9000207@hotdogrecords.com>
	<001201c35bb7$8c945520$1f00a8c0@leon>

It seems like I was able to get it to work with UTF-8.  I found this 
nifty little page: http://www.anassina.com/struts/i18n/i18n.html which 
explained how to handle this within Jakarta Struts.  It SEEMS like when 
reading the data from the database I don't need to explictly convert it 
to UTF-8, it just happens.  When I converted my database, I dumped it 
out, ran an ASCII to UNICODE converter, then loaded the data back in.  I 
was able to enter japanese characters and read them back from the DB 
okay.  My big question is completeness.  I really have no idea if I'm 
handling every case since it "just seems to work".   Thanks for the reply!

/kurt



LEON wrote:
> I have met the same problem when  I deal with chinese.
> I guess tomcat and jdbc produced this bug.
> But you may solute the charset display problem.
> You change the database's charset is useless when you connected DB with JDBC. You should convert Input Text with UTF-8 before saved in database. When you fetch data from DATABASE ,you should convert output data with some charset (F.E:GBK) before you display the data in page.
> 
> 
> There is some java code I used.Hope they will help you.
> //Output:
> OutputStream fileOut = new FileOutputStream(outputFileName);
> 
> fileOut.write(data.getBytes("GBK"));  //GBK、GB2312、BIG5、UTF8
> 
> //Input:
> InputStream fileIn = new FileInputStream(inputFileName);
> 
> int i = fileIn.read(buff);
> 
> String data = new String(buff,"UTF8");
> 
> 
> Best regards.
>                                                   leon
> 
> ----- Original Message ----- 
> From: "Kurt Overberg" <kurt@hotdogrecords.com>
> To: <pgsql-sql@postgresql.org>; <pgsql-jdbc@postgresql.org>
> Sent: Wednesday, August 06, 2003 1:11 AM
> Subject: [SQL] JDBC encoding problem
> 
> 
> 
>>I'm having a rather strange problem that I'm hoping someone can help me 
>>with.  I'm using Struts 1.0/jsp on Debian linux under Tomcat 4.1.x and 
>>the blackdown JVM  .  I'm attempting to convert my current SQL_ASCII 
>>database to UNICODE.  I'm new to this, so am most likely making a few 
>>mistakes.  Here's what I've done so far:
>>
>>o  Converted database encoding to be UNICODE.  I'm pretty sure this part 
>>worked okay.  (did a pg_dump, then iconv -f 8859_1 -t UTF-8, then 
>>created new db with encoding UNICODE and reloaded- no errors upon reload)
>>
>>sparky:~$ psql -l
>>         List of databases
>>    Name    |  Owner   | Encoding
>>-----------+----------+-----------
>>  unitest   | kurt     | UNICODE
>>  template1 | postgres | SQL_ASCII
>>(2 rows)
>>
>>
>>o  set client_encoding to 'UTF8';
>>
>>o  In my JSP files, I set the following at the top of each:
>>
>><%@ page lanuage="java" pageEncoding="UTF-8" %>
>>
>>
>>Now, to test this, I go to a japanese page, copy some text, then paste 
>>it into a form, that gets submitted to the server and saved into the DB. 
>>Then I try to display what I got back from the database.  It comes out 
>>garbled.  HOWEVER- if I leave the 'pageEncoding' out of my display .jsp 
>>file it still comes out garbled, UNTIL I set UTF-8 manually in my 
>>browsers Character Encoding settings (both mozilla and IE).  Then the 
>>japanese characters render fine (just like I entered them).
>>
>>Very strange.  What's confusing is that when I set the pageEncoding to 
>>'UTF-8', the characters don't render properly, and as far as I can tell, 
>>thats the same as manually setting the browser manually.  I must be 
>>doing something wrong because I get the same results in IE and mozilla 
>>(recent build).
>>
>>What may be the problem- I don't do anything differently when getting 
>>the data out of the database, just standard 
>>resultset.getString("column");  Do I need to change that call, to handle 
>>the potentially UTF-8 encoded strings?  I can't find anything on that at 
>>all with google/usenet.
>>
>>Any and all help, suggestions or pointers would be greatly appreciated.
>>
>>Thanks!
>>
>>/kurt
>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 4: Don't 'kill -9' the postmaster
>>
> 
> 
> ---------------------------(end of broadcast)---------------------------TIP 3: if posting/reading through Usenet, please send an appropriate      subscribe-nomail command to majordomo@postgresql.org so that your      message can get through to the mailing list cleanly
> 
> 





view thread (5+ messages)

Message-ID: <3F310E4F.6080102@hotdogrecords.com>
Permalink:  ../3F310E4F.6080102@hotdogrecords.com/
Also on:    postgresql.org/message-id/3F310E4F.6080102@hotdogrecords.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: kurt@hotdogrecords.com, ldai@accunettech.com, pgsql-jdbc@postgresql.org
  Subject: Re: [SQL] JDBC encoding problem
  In-Reply-To: <3F310E4F.6080102@hotdogrecords.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox