客户端给服务器传输请求和参数的时候有两种可能:
1.在URL中传输的参数一般是gbk。
2.表单或者连接提交的与该文本的编码有关。(一般是utf-8)
服务器接收客户端的请求:
由于服务器的默认编码是iso-8859-1(Tomcat 7,Tomcat 8是utf-8),所以服务器要通过适当调整编码格式。
1.如果客户端是通过POST的方法传输的,那么可以通过方法进行设置:request.setCharacterEncoding();然后在获取参数值。
2.如果客户端是通过GET的方法传输的,可以通过反编的方式:
实例:
String name = request.getParamter("name");//获取到ISO-8859-1编码的字符串(乱码)
byte [ ] bytes = name.getBytes("ISO-8859-1");//回退,根据ISO-8859-1的编码方式回退到字节数组
name = new String (bytes,"utf-8");//再用utf-8编码