为什么即使在utf-8中设置了表字符集,我们为什么仍在jdbc url中使用useUnicode = true&characterEncoding = UTF-8

问题描述

所以我的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

服务器对此具有默认设置。但是在您的客户端程序中进行设置是一种很好的做法。如果您使用错误的默认值迁移到生产服务器,则您的程序仍然可以运行。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...