修改HTML/JSP页面编码格式:
或
web.xml中的编码设置( 需要设置forceEncoding参数值为true,强制以目标编码为编码格式)
CharacterEncoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
CharacterEncoding
/*
但这个设置是针对POST请求的,tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat的server.xml配置文件,如下:
3.tomcat的server.xml配置文件
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
/>
4.数据库乱码
配置数据源编码格式
value="jdbc:mysql://121.40.90.125/test?useUnicode=true&characterEncoding=utf-8">
然后去修改数据库、表中列的编码格式为utf8
让MySQL支持Emoji表情
解决方案:将Mysql的编码从utf8转换成utf8mb4。
修改数据库字符集:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
修改表的字符集:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改字段的字符集:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5.SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,
但是当返回值是String的时候,中文会乱码,原因是因为其中字符串转换和对象转换用的是两个转换器,
而String的转换器中固定了转换编码为"ISO-8859-1"
解决方案:
第一种:在@RequestMapping中添加produces="text/html;charset=UTF-8
第二种:在MVC 配置中加入,spring版本必需为3.1或以上版本才可以下配置