在学习SpringMVC时,修改商品数据出现乱码。虽然之前也遇到过乱码,但是web项目中,时时刻刻,各种原因都能导致乱码的出现,所以每次出现乱码都需要记录下来,下次出现不至于摸不着头脑。
更改后的效果如下:
修改结果
首先,检查数据库的中的内容是否为乱码,可以知道是哪部分出现了问题。发现数据库中出现了乱码。
数据库
此时一般的解决方案是在web.xml加入编码的过滤器
<!--乱码过滤器-->
<filter>
<filter-name>CharacterEncodingFilter</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>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如果此时依然乱码,则修改jdbc数据源的配置,将url改为
jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
这样问题应该可以得到解决。
所以以后在配置jdbc数据源时,切记在url后面加上useUnicode=true&characterEncoding=UTF-8
如果数据库没有出现乱码,一般是在生成数据库的时候,character_set_database,character_set_server编码格式设置错误。
解决:
找到mysql安装路径下的my.cnf文件在[mysqld]下添加如下两行:
character_set_server=utf8
init_connect='SET NAMES utf8'
问题解决。
网友评论