Hi,
   
  I'm using tomcat 5.5.15.
  I have a servelt which reads parameters from a < form > , using 
HttpServletRequest.getParameter().

  The catch is, parameters data (filled in by the user) is in Chinese.
  I noticed that even though my page encoding is "unicode", the browser (IE6) 
seems to send the parameters in utf-8  (I'm not sure whether it's part of the 
HTTP spec, or is it and IE6 thing.... ?). 
   
  Unfortunately, Tomcat's implementation for HttpServletRequest.getParameter() 
returns garbage, because it does *not* assume that parameters are encoded in 
utf-8 (it seems to assume "latin1", or something very similar). 
I did manage to forcefully convert the data, using the following ugly code:
  
   // supposed to be a chinese city. I get garbage, because browser sends
   // the city in utf-8, but tomcat seems to assume its 'latin1' :
   String city=request.getParameter("city"); 
   
   // ugly convertion to utf-8:
   byte[] bytes=new byte[paramValue.length()];
   for(int i=0; i<bytes.length; i++)
         bytes[i]=(byte) paramValue.charAt(i);
   String converted=new String(bytes, "utf-8");
     // now "converted" seems to be the correct city


  I was wondering, is there a nicer way to do it ?
E.g. is there some tomcat configuration file, where you can tell it the 
request.getParameter() should parse the data assuming the browser sent it using 
utf-8 ?
   
  Thanks very much.


                
---------------------------------
Yahoo! Mail
Bring photos to life! New PhotoMail  makes sharing a breeze. 

Reply via email to