Request请求乱码解决

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Lhm2250765841/article/details/100548895
package com.mage.hsr;
import java.io.IOException;

import javax.servlet.ServletException;
/*
 * 请求乱码解决:根据提交方式分为get和post两种解决方案
 * 乱码原因,客户端与服务端字符集不统一
 * 使用document.charset可得到浏览器的字符集
 * get:	参数在请求行中,服务端默认使用ISO-8859-1字符集
 * 1,在Tomcat8及以上版本中中文可能不会乱码
 * 2,在Tomcat7及以下版本中,中文可能乱码
 * 解决方法:new String(uname.getBytes("ISO-8859-1"),"UTF-8")
 * 
 * post:参数在请求体中,使用页面编码
 * 1,在Tomcat8及以上版本中中文乱码		
 * 2,在Tomcat7及以下版本中中文乱码	
 * 解决方法:设置服务器默认解码字符集
 * req.setCharacterEncoding("UTF-8")
 * 此方法针对请求体有效,故无法对get使用,代码放在request对象之前
 * */
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test012 extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//		//测试get
//		String uname = req.getParameter("uname");
//		System.out.println("uname:"+uname);
//		//结果为uname:张三,原因是使用的是Tomcat8.5的版本,所有正常显示中文
		
		//测试post
		
//		String uname = req.getParameter("uname");
//		System.out.println("uname:"+uname);
//		//结果为:uname:å¼ ä¸
		
		//设置服务器默认字符集
		req.setCharacterEncoding("UTF-8");
		String uname = req.getParameter("uname");
		System.out.println("uname:"+uname);
		//结果为:uname:张三,正常显示中文
	}
	
	
}

猜你喜欢

转载自blog.csdn.net/Lhm2250765841/article/details/100548895