如何在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