Request请求对象中文乱码问题:
<注:请求页面的html文件中的<meta charset="utf-8">可指定浏览器的解码方式,Tomcat服务器的编码方式为:ISO-8859-1>
Get请求:
eg:
String name=request.getParameter("name");name=URLEncoder.encode(name,"iso-8859-1"); //先用Tomcat的编码对问题字符串进行编码name=URLDecoder.decode(name,"utf-8"); //后用浏览器的编码对上面编码后的字符串再进行解码操作
Post请求:
request.setCharacterEncoding("utf-8"); //指定服务器的编码方式(与浏览器的编码一致即可)
Response响应对象中文乱码问题:
字符流中文乱码问题解决:
eg:
/*字符流中文乱码问题解决方案*/ String userName = request.getParameter("username");response.setCharacterEncoding("utf-8"); //设置服务器的编码方式response.setContentType("text/html;charset=utf-8"); //设置浏览器的解码方式PrintWriter writer = response.getWriter();writer.write("Hello "+userName);
字节流中文乱码问题解决:
eg:
/*字节流中文乱码问题解决方案*/response.setContentType("text/html;charset=utf-8"); //设置浏览器的解码方式ServletOutputStream outputStream = response.getOutputStream();outputStream.write(("Hello "+userName).getBytes("utf-8")); //设置服务器的编码方式
<注:务必确保浏览器和服务器的编码方式一致>