Tomcat 中文编码问题
一般Tomcat默认的编码方式是ISO-8859-1,不支持中文。
在请求信息包含中文时会出现乱码问题。
解决方案如下:
前端
在HTML页面设置编码方式
| 1 | <meta charset="UTF-8"> | 
后端
POST
在 获取request参数前(即request.getParameter();前)加入以下代码设置解码方式为UTF-8。
| 1 | request.setCharacterEncoding("UTF-8"); | 
在返回数据前(即response.getWriter();前)加入以下代码设置编码方式为UTF-8。
| 1 | response.setCharacterEncoding("UTF-8"); | 
加入以下代码通知浏览器以UTF-8解码。
| 1 | response.setContentType("text/html;charset=UTF-8"); | 
GET
在 获取request参数后,对参数进行二次编码再解码。
如对searchVal进行二次编码再解码:
| 1 | searchVal = new String(searchVal.getBytes("ISO-8859-1"), "UTF-8"); | 
Tomcat版本如果大于8则不需要进行此处理。
但GET请求中参数应尽量避免中文。
在返回数据前的处理和POST相同。