关于数据写入mysql中文而展示问号(?)问题
最近遇到数据库变更后,向数据库添加记录,中文读取或存入时变为???。本地MySQL数据库的字符集设置的是utf-8,IDE中项目的字符集也是utf-8
问题排查
查看数据库内容:
查看日志中的sql
发现request中获取到的确实是中文,没有问题,库表编码也均为utf-8。
最后是在MySQL连接数据库url
的参数中加了characterEncoding=UTF-8解决了问题。
characterEncoding=utf-8
characterEncoding=UTF-8作用是指定所处理字符的解码和编码的格式,或者说是标准。若项目的字符集和MySQL数据库字符集设置为同一字符集则url可以不加此参数。
spring.datasource.url=jdbc:mysql://127.0.0.1:3333/breathing_cloud_device?useUnicode=true&useSSL=false&serverTimezone=UTC&characterEncoding=utf8