最近新上线一个H5活动,支持在线评论,后台使用spring boot+jpa,但是不能输入表情,输入后提示错误
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1
立马想到数据库编码格式,进行查看数据库、表、字段都是utf8mb4,单还是不行,最总查看需要配置 init-s-q-l: set names utf8mb4 collate utf8mb4_general_ci
原来yml配置如下:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.jdbc.Driver
username: test
password: test
修改后的yml配置如下:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.jdbc.Driver
username: test
password: test
tomcat:
init-s-q-l: set names utf8mb4 collate utf8mb4_general_ci