如何在servlet中读取utf-8值

在我的servlet中,我保存到一个String变量,这是一个在JSP页面中形成一个表单(带有POST)的值。这个值有时不是英文的..

s1 = request.getParameter("Country"); 

然后测试,我刚读到的东西我把它打印到日志屏幕,我得到$%^&当它不是英文时。 我试着补充一下

  

在我的jsp页面中,我还检查了server.xml是否有这个

 URIEncoding="utf-8" 

但它没有改变任何东西..我该怎么办?
编辑
我在servlet中添加了以下内容

 if (request.getCharacterEncoding() == null) { request.setCharacterEncoding("UTF-8"); } 

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

但我仍然有问题

如果你正在使用tomcat,你可以试试他们的utf8编码filter(当然把它添加到你的web.xml)。 他们的filter名为org.apache.catalina.filters.SetCharacterEncodingFilter,或者如果您不想依赖第三方,那么您可以查看他们的源代码并编写自己的源代码,这并不是很复杂。

另见http://wiki.apache.org/tomcat/FAQ/CharacterEncoding