If you can live with the Servlet 2.2 spec, Tomcat 3.3
has a work around for this.  The DecodeInterceptor can
accept a URL like the following to specify the encoding
as part of the URI:

http://localhost:8080/myapp/index.jsp;charset=UTF-8?param=value

For details, see the charsetAttribute attribute of the
DecodeInterceptor:

<http://jakarta.apache.org/tomcat/tomcat-3.3-doc/serverxml.html#DecodeInterceptor>

You are welcome to give it a try.

Cheers,
Larry

> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]] 
> Sent: Monday, March 18, 2002 8:50 PM
> To: Tomcat Users List
> Subject: Re: Tomcat and Unicode parameters in URLs ???
> 
> 
> 
> 
> On Tue, 19 Mar 2002, Soefara Redzuan wrote:
> 
> > Date: Tue, 19 Mar 2002 09:20:47 +0800
> > From: Soefara Redzuan <[EMAIL PROTECTED]>
> > Reply-To: Tomcat Users List <[EMAIL PROTECTED]>
> > To: [EMAIL PROTECTED]
> > Subject: Re: Tomcat and Unicode parameters in URLs ???
> >
> >
> > >Setting the content type, as you did above, only affects 
> the *output* 
> > >of that particular response -- it has nothing to do with 
> how the next 
> > >*input* request from that browser will be handled.
> > >
> > >In order to deal with request parameters in an incoming 
> request, you 
> > >must tell Tomcat what encoding to use, *before* processing the 
> > >parameters. This is done by calling the 
> > >request.setCharacterEncoding() method that was added in 
> Servlet 2.3.  
> > >As long as you call this before calling methods like 
> > >request.getParameter(), the proper encoding will be applied.
> > >
> > >One way to do this without modifying your application itself is to 
> > >use a Filter that looks at incoming requests and decides what 
> > >encoding should be used -- perhaps by looking at the 
> > ><code>Accept-Language</code> header, or based on 
> attributes you have 
> > >stored in the current session that indicate what the user will be 
> > >supplying.
> >
> > But what happens if you really do not know what character set to 
> > expect ? In our company, the webserver is used for B2B 
> messaging with 
> > customers and not purely serving web pages.  For example, we can 
> > accept a message with a query string like this 
> > 
> http://vpn.ourcompany.com/servlet/incoming?> company=CustomerName&refere
> > nceId=1234&noteText=
> >
> > The noteText could be in one of several languages since we do 
> > international business. We're currently considering adding 
> a language 
> > parameter such as &Language=English but it would be nicer to 
> > autodetect the language. Is this possible ?
> >
> 
> It would be possible if the HTTP specs defined a way to tell 
> the server what language the HTTP URL is encoded in, and if 
> browsers actually sent along that indication.  Neither seems 
> to be the case in general -- even on a POST transaction 
> (where the browsers really have no excuse for not including 
> the character encoding in the Content-Type header), many 
> don't. Thus, you're stuck haveing to figure it out for yourself.
> 
> Note that adding a language parameter to the query string 
> isn't going to do you much good -- you have to call 
> setCharacterEncoding() *before* you call 
> request.getParameter(), so you won't have been able to read 
> the language field first.
> 
> > Thank you, Soefara
> >
> > _________________________________________________________________
> 
> Craig
> 
> > Join the world's largest e-mail service with MSN Hotmail. 
> > http://www.hotmail.com
> >
> >
> > --
> > To unsubscribe:   
> <mailto:tomcat-user-> [EMAIL PROTECTED]>
> > For 
> additional commands: 
> <mailto:[EMAIL PROTECTED]>
> > Troubles with the list: 
> <mailto:[EMAIL PROTECTED]>
> >
> >
> 
> 
> --
> To 
> unsubscribe:   <mailto:[EMAIL PROTECTED]>
> For additional commands: <mailto:[EMAIL PROTECTED]>
> Troubles with the list: <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to