jsp页面乱码
| 12
 
 | <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
 
 | 
tomcat控制台乱码
tomcat下面 apache-tomcat-7.0.92\conf\logging.properties 把里面的 UTF-8 都改成 GBK
https://img-blog.csdnimg.cn/20190110144403828.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NfYm9keQ==,size_16,color_FFFFFF,t_70
hibernate 输入乱码
| 12
 3
 
 | 处理乱码的filter,原理是通过过滤器/*的路径 把所有请求的编码设置为utf-8
 过滤器类
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 
 | package com.tr.filter;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.Map;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 
 
 
 
 
 public class GenericEncodingFilter implements Filter {
 @Override
 public void destroy() {
 }
 
 @Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
 
 HttpServletRequest httpServletRequest = (HttpServletRequest) request;
 
 HttpServletRequest myrequest = new MyRequest(httpServletRequest);
 chain.doFilter(myrequest, response);
 }
 
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
 }
 
 }
 
 
 class MyRequest extends HttpServletRequestWrapper {
 
 private HttpServletRequest request;
 
 private boolean hasEncode;
 
 public MyRequest(HttpServletRequest request) {
 super(request);
 this.request = request;
 }
 
 
 @Override
 public Map getParameterMap() {
 
 String method = request.getMethod();
 if (method.equalsIgnoreCase("post")) {
 
 try {
 
 request.setCharacterEncoding("utf-8");
 return request.getParameterMap();
 } catch (UnsupportedEncodingException e) {
 e.printStackTrace();
 }
 } else if (method.equalsIgnoreCase("get")) {
 
 Map<String, String[]> parameterMap = request.getParameterMap();
 if (!hasEncode) {
 for (String parameterName : parameterMap.keySet()) {
 String[] values = parameterMap.get(parameterName);
 if (values != null) {
 for (int i = 0; i < values.length; i++) {
 try {
 
 values[i] = new String(values[i].getBytes("ISO-8859-1"), "utf-8");
 } catch (UnsupportedEncodingException e) {
 e.printStackTrace();
 }
 }
 }
 }
 hasEncode = true;
 }
 return parameterMap;
 }
 
 return super.getParameterMap();
 }
 
 @Override
 public String getParameter(String name) {
 Map<String, String[]> parameterMap = getParameterMap();
 String[] values = parameterMap.get(name);
 if (values == null) {
 return null;
 }
 return values[0];
 }
 
 @Override
 public String[] getParameterValues(String name) {
 Map<String, String[]> parameterMap = getParameterMap();
 String[] values = parameterMap.get(name);
 return values;
 }
 
 }
 
 
 |