在mysql中写入部分繁体字,出现错误:
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\xAC\x98\x94' for column 'name' at row 1
可以看到错误提示中的字符'\xF0\xAC\x98\x94' ,这对应UTF-8编码格式中的4字节编码。汉字一般不会超过3个字节,这里出现4个字节是因为不常用的繁体字。mysql中的utf-8并不是真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,如果想存储4个字节的必须用utf8mb4类型。
解决方法:
1. 修改表或字段的字符集编码为utf8mb4,排列规则为 utf8mb4_general_ci; 2. 修改PHP连接数据库配置,'charset'=> 'utf8mb4';