FAQ/CharacterEncoding - Tomcat Wiki(About) The fact is: there is no char encoding in a GET request. So an unmodified installation of Tomcat will parse the URI in a GET as ISO-8859-1 ("the Servlet spec requires it"). But a SPARQL request, for instance, requires it to be UTF-8 encoded. So it can't work!!!
Tomcat people insist that their behavior is a feature. Maybe it's not a bug, but I doubt it is a feature. To get tomcat working otherwise, you have to set a parameter in the server.xml (connector, URIEncoding) What if you don't control the tomcat install? Maybe the best thing to do is to parse the parameters from request.getQueryString(). In my web apps until now, I double UTF-8 encode the params in a GET (for instance, the semanlink bookmarklet)