获取中文参数是乱码:
1. 接受参数直接设置
request.setCharacterEncoding("gb2312");
2.使用URLDecoder解码字符串
String queryStr = java.net.URLDecoder.decode(rawQueryStr , "gbk")
3.获取请求参数值之后对请求参数值重新编码。也就是先将其转换成字节数组,再将字节数组重新解码成字符串。
//获取原始的请求参数值
String rawName = request.getParameter("name");
//将请求参数值使用ISO-8859-1字符串分解成字节数组
byte[] rawBytes = rawName.getBytes("ISO-8859-1");
//将字节数组重新解码成字符串
String name = new String(rawBytes , "gb2312");
返回时是乱码
response.setContentType("text/html;charset=UTF-8");// 在这里设置就不会出现乱码了!
response.getWriter().write( "非常霸道!" )