解决POST乱码 POST是通过 getReader() 获取 所以设置字符输入流的编码即可解决
先设置在获取 重启代码 刷新网页 重新提交
request.setCharacterEncoding("UTF-8"); // 设置字符输入流的编码
解决GET乱码 GET是通过 getQueryString()方式获取 (也适用于post方式)
乱码原因: 浏览器将 UTF-8 中文 使用URL编码后 发送给Tomcat Tomcat URL解码默认使用IOS-8859-1方式解码 编解码方式不一样所以乱码
方法一: 将Tomcat默认URL ISO-8859-1解码复原(使用ISO-8859-1 进行URL编码) 然后使用URL UTF-8解码
userName = URLDecoder.decode(URLEncoder.encode(userName,"ISO-8859-1"),"utf-8");
方法二: 将当前字符串 按照 ISO-8859-1 方式解码为字节数组 再将字节数组 按照UTF-8方式编码为字符串
userName = new String(userName.getBytes("ISO-8859-1"),"UTF-8");
URL编码:将字符串按照URL方式转换为二进制
每个字节转换为2个16进制数 并在前面加上 %
提示: Tomcat8.0之后已将GET请求乱码问题解决 设置默认的解码方式为UTF-8