一、配置springmvc乱码处理
网上说要把这个放在web.xml的最前面
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
二、连接数据库的配置
加上?useUnicode=true&characterEncoding=UTF-8
jdbc.user=root
jdbc.password=XXXXX
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/derui?useUnicode=true&characterEncoding=UTF-8
三、修改tomcat中server.xml文件指定的默认编码
这点可以去百度,看更详情的
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
四、修改数据库默认编码
通过 show variables like '%char%'; 查看数据库编码,你要保证是以下情况,如果有latin1字符集出现,那你就要去改了。
怎么改?百度“修改mysql数据库字符集”
注意的是,改了要重启mysql,但是,有时候重启也不生效,那只能删库重建指定好utf8字符集才生效
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
五、在过滤器配置
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
六、映射方法中配置
produces = "text/plain;charset=UTF-8"
@RequestMapping(value = "/add", method = RequestMethod.POST,produces = "text/plain;charset=UTF-8")
public String add(){
return "index";
}
七、配置Maven
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
八、设置好jsp页面的编码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
九、使用getBytes("XX")
我没用过,我学长用的,我顺带整理,一般封装成一个类工具
String str = new String("前端传来的中文字符串数据".getBytes("这里写前端jsp页面的编码,如:iso-8859-1"),"utf-8");
十、有前辈说用序列化把数据写进数据库,然后读出来再进行反序列化
百度,我不懂
------------------------结束-------------------------------