1.先查看从jsp页面传到servelt是否是乱码,如果是,那就是没有配置srping 字符过滤器在web.xml添加过滤器
<filter>
<filter-name>SpringEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SpringEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.如果不是,mysql 刚安装默认不是中文字符编码,要修改数据库字符集
修改数据库字符集
alter database 数据库名 character set utf8;
修改表字符集
ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改列字符集
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci;
3.在jdbc mysql url后面加参数
?useUnicode=true&characterEncoding=GBK
注意&是转义的&,如果直接写&会报错
4.修改数据库默认字符集
在mysql的安装目录下找到my.ini,作如下修改:
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
my.ini是在mysql数据文件夹下面,默认安装在C:\ProgramData\MySQL目录下。
命令修改
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
5.如果数据库保存的都是正常,而在Mysql命令行是乱码
set character_set_results=gb2312;
就可以了