spring boot mysql插入中文变为问号

本文解决IDEA 19.2.1版本中使用SpringBoot进行中文插入数据库时出现乱码的问题。通过调整数据库字符集和IDEA文件编码设置,确保中文数据正确存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因

开始使用idea19.2之前的版本时,spring bootgradle bootjar的jar包直接运行是没有出现这个bug的,后来重做系统,装了19.2.1,升级编译后就又出现了插入中文变???的问题。

网上的blog或者教程,都说在jdbc连接上动刀加上useEncode之类的,完全不必,而且测试了如果mysql没有更改,插入甚至会报错,只需要在创建数据库时

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;这段加上,重启mysql,就能正常插入中文了,而spring boot来插入仍然会出现问号,是因为idea的file encoding在19.2.1是system default,即GBK,非UTF-8,左上角File-setting-搜索File encoding,全部选项调成UTF-8,然后gradle bootjar,重新部署到服务器上,即可正常插入中文