标签:包含 serve 国际 val 字节 使用 添加 text 用户
新建的用户表中,昵称需要支持emoji,再向表中插入数据时,发生异常:
java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x83\xF0\x9F...‘ for column
新建的用户表,使用的是utf8字符集编码,mysql实现utf8编码时,最大长度为3个字节,包含了绝大多数的国际字符,但并不是所有,而emoji,需要4个字节才能编码。
修改表的字符集编码
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
修改字段的字符集编码
ALTER TABLE table_name MODIFY COLUMN column_name text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
如果服务端 character_set_server
的配置,不为utf8mb4,则需要增加数据源配置
# 指定连接被创建,再被添加到连接池之前执行的sql spring.datasource.connection-init-sql=SET NAMES utf8mb4
标签:包含 serve 国际 val 字节 使用 添加 text 用户
原文地址:https://www.cnblogs.com/lzw-st/p/13202002.html