项目在阿里云的服务器上运行之后,连上了数据库但是,客户端发送过去的中文信息,服务端处理后插入到mysql数据库的时候出现的都是“????”都是中文的问号,然后我本地测试也是用的mysql数据库,没出现这样的问题。然后试着直接修改服务器上的数据库,发现能改成中文的,然后客户端也能读取到中文,但是为什么就不能写入中文呢?
于是去Google和百度了,很多人的解释是数据库的相关编码集默认不是utf-8所导致的,结果修改了一通默认编码集,问题还是存在。于是就是查看代码了,读取的时候把字节流转换成了utf-8了,然后再去查看连接数据库的代码,发现
String dburl = "jdbc:mysql://localhost:3306/xxxxDatabase?useUnicode=true&characterEncoding=utf8";
后面半句没有加,然后加上了后面的
useUnicode=true&characterEncoding=utf8
问题就解决了。