TP6遇到数据库编码问题:[10501]SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\x93' for column
今天对接小程序用户授权登录的时候遇到的问题,发现有的用户正常有的用户不正常。查看系统日志发现报这样的错误[10501]SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8D\x93' for column,原来是有些用户的昵称带有emoj表情,而这些表情是按照四个字节一个单位进行编码的,而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的,正是这个原因导致将数据存入mysql数据库的时候出现错误。所以要对数据库的编码进行修改,这里有3个地方需要修改成utf8mb4:
- 数据库的编码
- 对应表的编码
- 代码配置文件中数据库连接的编码