Q:为什么要用utf8mb4
A:utf8mb4可以直接保存emoji字符
MySQL修改字符集
// 数据表编码改为utf8mb4functionto_utf8mb4(){$database=config("database.database");// 数据库$sql_db="ALTER DATABASE `{$database}` CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`;";echo$sql_db;$lists=Db::getTables();foreach($listsas$key=>&$value){// 数据表$sql_tab="ALTER TABLE `{$value}` CONVERT TO CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`;";Db::execute($sql_tab);$fields=Db::getFields($value);foreach($fieldsas$key1=>&$value1){if(mb_strpos(strtolower($value1["type"]),"char")!==false){// 字段$sql_field="ALTER TABLE `{$value}` MODIFY `{$value1["name"]}` {$value1["type"]} CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci` DEFAULT \"{$value1["default"]}\";";Db::execute($sql_field);}}}}thinkPHP5.0框架
// 数据库编码默认采用utf8'charset'=>'utf8',新的
// 数据库编码默认采用utf8'charset'=>'utf8mb4',修改之后可以直接存储emoji
普通的utf8字符
emoji
参考文章
https://blog.csdn.net/qq_50573146/article/details/125177260