项目中需要获取微信昵称并存储到数据库mysql,有些用户的昵称带有emoji,直接使用默认utf8直接存储是乱码状态,现在总结两种处理办法
方法一
使用php自带函数base64_encode处理后存储到mysql,然后获取的时候用base64_decode解码
方法二
修改编码使用utf8mb4
1,修改mysql编码
可以只单独修改列的编码
ALTER TABLE `表名`
MODIFY COLUMN `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL AFTER `keywords`;
2,修改php连接mysql默认编码改为utf8mp4
如果使用的是thinkphp6,修改根目录.env文件中CHARSET的值改为utf8-mp4