(1)Set page directive attributes right
   (Maybe, pageEncoding = your platform encoding and charset = UTF-8)
(2)Use a Servlet/JSP container other than Tomcat. For example, Resin
from caucho.com.

<quote>
Scott Ferguson wrote:

> Actually, the underlying problem is a difficult one. Unfortunately, URLs
> don't have an official character encoding. It looks like we're drifting
> toward UTF-8 as a default, but that's not specified in the HTTP
> specifications.
>
> Because the HTTP request does not specify the URL encoding, the web
> server needs to guess. It's somewhat of an ugly problem.
Today's JSPs have page directive, its contentType and pageEncoding
attributes. A server doesn't need to bring rabbit out of a hat. Simply
put in other words, Tomcat behavior is just substandard negligence.

I have noticed that servlet generated from JSP by Resin has correct
setCharacterEncoding() call even when the original JSP doesn't have
the call. Resin may be called 'superstandard.' :)

> That somewhat translates into the Servlet/JSP forward/include issue.
> Resin's approach is to realize that the Java string for the
> URL/QueryString is 16-bits, so there's no need to do any encoding until
> there's a sendRedirect or something similar.
>
> -- Scott
</quote>

Dennis Thrys�e wrote:
Hi,

I'm having problems including a JSP page from another JSP page using parameters with special characters.

I looked through the archives, but couldn't find anything about this issue.

I can encode a string, and the result is correct

URLEncoder.encode("bl�b�rgr�d", "ISO-8859-1")

But if I make an include with the same value

  <jsp:include page="bar.jsp" flush="true">
    <jsp:param name="word" value="bl�b�rgr�d" />
  </jsp:include>

The special characters are replaced with question marks '?' (%3F). So the query string seen from bar.jsp becomes

word=bl%3Fb%3Frgr%3Fd

In fact the generated java code for the main jsp file contains this string also. So the problem is already during parsing or servlet generation.

The requests character encoding is null. The page directive's pageEncoding attribute is "ISO-8859-1" (or not present - doesn't make a difference.

The user properties user.country and user.language are 'US' and 'en' respectively. Might that be the cause?

The problem is on Tomcat 4.1.29 on Linux.


By the way: I still haven't figured out whether Tomcat 4.1.30 is supposed to be able to run on JDK 1.3.1.



Any help appreciated,



-dennis


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- Hiroshi Iwatani

*stop cruelty* Annual number of institutionally euthanized cats and dogs including kittens and puppies: US 5 million, JP 500 thousand. How about your country? *for our better karma*
---------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to