php - mysql无法保存emoji表情
迷茫
迷茫 2017-04-11 10:37:10
[PHP讨论组]

mysql版本为5.7,已经将数据库字符集设置为utf8mb4了,如图:

字段的字符集也已经改了:

`content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '评论内容'

但是页面提交过来的emoji表情还是无法保存成功,报错信息为:

    General error: 1366 Incorrect string value: '\xF0\x9F\x98\xAF' for column 'content'

页面上的编码用的UTF-8,框架用的是laravel,请大神指点哪里的配置还有问题?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
巴扎黑

数据库连接要设置为utf8mb4,一般配置数据库的地方都有设置。

如果没有的话php连接数据库后先执行一次查询

set names utf8mb4
天蓬老师

要存emoji表情的字段的字符集改了吗?

字符集是:utf8mb4

utf8mb4_unicode_ci 是字符集排序规则...

你要确定你的字符集改了..并且,laravel的里的.env文件要把字符集改成

.env详细配置:

DB_CONNECTION=mysql //数据库类型
DB_HOST=localhost //数据库地址
DB_PORT=3306 //数据库端口
DB_DATABASE=test //数据库名
DB_USERNAME=root //数据库用户名
DB_PASSWORD= //数据库密码
DB_CHARSET=utf84mb4  //数据库字符集
DB_COLLATION=utf8mb4_general_ci //数据库字符集排序规则

天蓬老师

记得跟数据库的版本有关系,还得设置utf8mb4 以及 utf8mb4_general_ci

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号