如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

话说,苏南大叔认为,utf8就是实用性最强的字符集了。网页的字符集设定都是使用utf8。

问题描述

最近在基于laravel和easywechat写微信公众平台的管理代码。发现在mysql中用utf8的时候,居然也有不能显示的字符出现。那不能显示的字符是什么呢?就是emoj字符...一些人的微信名称里面带emoj,但是这些字符在mysql的utf8里面是不能保存的。只有把utf8改成utf8mb4才ok。别问我咋知道的,实践出真知。

配置laravel

修改laravel的数据库配置文件config/databases.php 即可。

'mysql' => [
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
],

可能需要的sql语句

当然,对于,已经建好的表格。你还可能需要下面的类似sql语句:

ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `TABLE_NAME` MODIFY `COLUMN_NAME` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

据说mysql5.5之后,才支持utf8mb4,所以,如果显示不支持字符集utf8mb4的话,请升级你的mysql。

您可能还需要如下sql语句:
查看数据库编码:

SHOW CREATE DATABASE db_name;

查看数据表编码:

SHOW CREATE TABLE tbl_name;

查看字段编码:

SHOW FULL COLUMNS FROM tbl_name;

结语

更多mysql相关文章,请点击查看。由苏南大叔为您带来的IT业界最新文章:https://newsn.net/tag/mysql/

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。