java web 项目, 前台页面的表单数据, 插入到数据库时, 结果出现乱码??? 的问题, 断断续续折腾了一天时间, 废话不说, 步骤如下:
一: 在 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>
这样可以确保, 页面的数据传入到 controller 不会乱码; 如果还是乱码, 就应该考虑数据库层面的问题了
二: 检查数据库方面的配置:
1. 确保数据库的连接 url 中设定了 utf8:
url:jdbc:mysql://localhost:3306/blog-qwc?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
2. 确保创建的数据库是否配置支持中文, 如图:
数据库属性支持: utf8 -- UTF-8 Unicode
数据库排序规则: utf8_general_ci
3. 修改数据库连接下的表 blog 的编码:
alter table blog default character set utf8;
4. 修改表 blog 中每一个字段的编码:
- // 将该表中的每一列的字符集都改为 utf-8
- alter table blog change title title varchar(100) character set utf8;
- alter table blog change author author varchar(100) character set utf8;
- alter table blog change md md varchar(500) character set utf8;
- alter table blog change html html varchar(500) character set utf8;
注: alter table blog change html html varchar(500) character set utf8; 字段 html 要写两遍, 没有毛病
5. 问题还未解决的话, 问题应该在数据库连接的 url 本身了:
修改 db.properties 文件中的 url:
url:jdbc:mysql://localhost:3306/blog-qwc?useUnicode=true&characterEncoding=UTF-8;zeroDateTimeBehavior=convertToNull;allowMultiQueries=true
修改为:
url:jdbc:mysql://localhost:3306/blog-qwc?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
修改内容:& == &
6. 如果还是不行, 删除数据库连接, 再来一遍
这也是没办法的办法了
来源: https://www.cnblogs.com/quan-coder/p/8486917.html