request.setCharacterEncoding("UTF-8"); 放在request.getParameter()之前,才能保证参数是按照设置的编码来获取的;
或者写在PrintWriter out=request.getWriter();之前,才能保证out写出是按照设置编码来输出的。
但是都不能完全解决中文乱码问题:
对于post,无论是输入还是输出都没有问题。
而对于get,输出没问题,输入也就是获取参数值的时候,还是会出现中文乱码问题。
解决办法:
String name = request.getParameter("name");//假设name为中文
String userName = new String(name.getBytes("ISO8859-1"),"UTF-8");
解决!
详细查看:点击打开链接