中文乱码, 基本就分两段, 一, 从request获取到的就是乱码, 二, request获取的没问题, 存储到数据库乱码.
一, request获取到的就是乱码
基本上就设置4个地方,
1, 先确保你项目的文件格式是GBK或者UTF-8
2, 如果你使用的jsp就设置代码的<%@ page contentType="text/html; charset=utf-8" language="java"%>
3, web.xml
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
4, struts.xml
<constant name="struts.i18n.encoding" value="utf-8" />
二, 数据库问题
1, 检查数据库字符集, 是否设置成了utf8
2, 检查表字符集是否是utf8
3, 执行SHOW VARIABLES LIKE 'character_set_%';
查看
如果是latin1, 那么久需要将改成utf8
linux需要去寻找my.ini增加character_set_server=utf8
mac的话, 我自己都没找到my.ini
ps: 执行set character_set_server=utf8;可以改, 但是重启mysql, 又失效了, 我还没想到怎么办