问题描述
所以我的mysql数据库中的字符集是utf-8。
另外,如果我在jdbc URL中不使用 useUnicode = true&characterEncoding = UTF-8 ,那么某些字符会变成?。
我想知道当我们的字符集在数据库中是utf-8时,为什么要在jdbc URL中使用Unicode = true&characterEncoding = UTF-8。
这是我的表格属性->
ENGINE=InnoDB
DEFAULT CHARSET=utf8
TABLE COLLATION=utf8_general_ci
解决方法
MySQL具有列字符集(每个表和每个数据库都有默认字符集)。它还具有连接字符集,它们不是一回事。您的SQL语句以什么字符集编写?以什么字符集返回结果?这就是为什么选择连接字符集的原因。详细信息比我的摘要要复杂。读这个。 https://dev.mysql.com/doc/refman/8.0/en/charset-connection.html
服务器对此具有默认设置。但是在您的客户端程序中进行设置是一种很好的做法。如果您使用错误的默认值迁移到生产服务器,则您的程序仍然可以运行。