Java连接Mysql数据库写入中文数据乱码成???的解决方法
问题介绍
在本地创建好表,写入中文数据时,发现调用接口写入的数据值变成了???,但是手动输入的时候是可以显示中文的,因此定位到问题所在,是java写入过程中的问题。但是本地调试在insert的时候,中文字符依然正确。jooq生成的代码insert不会出错,因此应该是在java连接JDBC时出错的!
Java连接JDBC
java连接到MySql时,需要设定连接到的数据库的url,url设定是可以带上一些设定参数。常用的参数如下:具体的JDBC url 链接方法: 可以参考以下链接, https://www.cnblogs.com/mracale/p/5842572.html。重点:
- 如果是在xml文件中,&字符需要进行转义,转移为 &
问题解决方法
在我的项目配置中,可能是别人从老项目中直接拷贝的,项目的config.properties文件中设定的jdbc 的url参数格式中,使用是 转义后的 & --即&,导致连接失效。我将其改为 & 即可、如下:
jdbc:mysql://host:port/database?useUnicode=true&characterEncoding=UTF-8
成功解决问题,java 写中文数据为空的问题!
当然如果你的配置没有出错,请检查表的参数配置是否为utf8