druid连接mysql读取正常,但写入乱码
@wenshao 你好,想跟你请教个问题:
请问mysql中文乱码怎么解决……求温少给个范例…研究了好几天了,尝试各种配置还是无效
我已经在连接url中加入了useUnicode=true&characterEncoding=UTF-8&但是依然乱码
现象:
1.读取中文数据正常
2.查询条件带中文,因为乱码,查询无结果
3.写入数据带中文,数据库中显示为"?????????????"乱码
请问应该如何正确配置才能让druid对中文处理正常呢?
=====================
由于云数据库,下面这条无法修改,除了此条以外我全部按照文档修改为UTF8了
vi /etc/my.cnf
在[client]下添加
default-character-set=utf8
=====================我DEBUG的是时候发现在DRUID进入mysql-connector-java.jar之前SQL都是正常的
当进入durid的FilterChainImpl类的
public PreparedStatementProxy connection_prepareStatement(ConnectionProxy connection, String sql)
方法中的
PreparedStatement statement = connection.getRawObject().prepareStatement(sql);这句(第451行附近)
局部变量DEBUG调试器中,变量sql显示中文正常。(此处connection.getRawObject()返回类为com.mysql.jdbc.JDBC4Connection@1ca38160)
但是经过这句后,返回的 PreparedStatement statement(经过了mysql-connector-java.jar,我用的5.1.35版),返回结果statement里面带有乱码
希望能给个明确答复,到底怎么配置才能正确读写中文
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果你的URL是在Java类中使用
dataSource
.setUrl("jdbc:mysql://127.0.0.1:3306/lian?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull");
好吧,我的问题还不一样,已经解决了
我也遇到这个问题,URL设置也正确,请问你是如何解决这个问题的?
碰到相同问题,请问已经解决了吗?
你把连接url中加入的改成这个:useUnicode=true&characterEncoding=utf8&characterSetResults=utf8试一试,我之前和你的问题一样,我的是这样解决的。
建议把相关代码单独领出来上传到Git@OSC,做个小样即可,便于帮助调试和发现问题。