插入数据库中文乱码问题
2016-04-27 10:02
351 查看
最近在做个web项目的时候发现一个关于乱码的问题总结一下,最开始在页面插入一条记录总是显示为??。我检查了spring过滤器并强制初始化开启,配置如下:
然后我我开始调试到程序里,发现bean里获取的内容都是正常的中文,说明过滤器正常工作。还是插入的是??,这个时候只有两种情况:
数据库编码不对
mybatis与mysql连接的编码不对
关于第一个问题暂时网上找到的解决方案只能重新创建库选择正确的编码方式来解决,重新创建了数据库后我在heidisql里直接插入中文是可以的说明的确是utf-8编码没问题。然后我试了从程序插入中文这个办法还是不能解决,看来我是属于第二个问题。然后我在配置数据源的地方url改成了:
修改后可以正常插入中文了。
<!-- 过滤器utf-8 --> <filter> <filter-name>encodingFilter</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>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后我我开始调试到程序里,发现bean里获取的内容都是正常的中文,说明过滤器正常工作。还是插入的是??,这个时候只有两种情况:
数据库编码不对
mybatis与mysql连接的编码不对
关于第一个问题暂时网上找到的解决方案只能重新创建库选择正确的编码方式来解决,重新创建了数据库后我在heidisql里直接插入中文是可以的说明的确是utf-8编码没问题。然后我试了从程序插入中文这个办法还是不能解决,看来我是属于第二个问题。然后我在配置数据源的地方url改成了:
jdbc:mysql://localhost:3306/hq_db?useUnicode=true&characterEncoding=UTF-8
修改后可以正常插入中文了。
相关文章推荐
- oracle 11g r2 企业管理器
- 论坛日志分析:Flume+MapReduce+Hive+Sqoop+MySQL
- MongoDB的学习--索引类型和属性(转)
- 数据库学习笔记
- 结合MongoDB开发LBS应用(转)
- SQL中Group By的使用
- redis错误:BeginForkOperation: system error caught. error code=0x000005af
- 学会用各种姿势备份MySQL数据库
- Oracle监听无法启动处理随记
- 如何实时查看mysql当前连接数?
- Ubuntu14.04编译安装mysql5.6.26
- 图解 MongoDB 地理位置索引的实现原理(转)
- activiti5.13 框架 数据库表结构说明
- MongoDB学习笔记(索引)(转)
- mysql 创建用户和表
- Oracle函数大全之日期函数
- DataTable转List<T>,从数据库对象转实体对象的自动实现
- 如何用Powerdesigner的PDM生成数据库及逆向生成
- [oracle 11g 新特性] virtual column虚拟列
- 关于 redis、memcache、mongoDB 的对比