mysql中插入表情符号emoji、日文片假名问题
[ 2022-07-26 15:15:04 | 作者: admin ]
p.s.有次全部设好还乱码,查了发现自定义截取函数有问题,改为mb_substr()注意第三个编码参数,就正常了。
MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集。
一、首先修改mysql配置文件
二、建立数据库和字段的时候需要使用 utf8mb4
三、程序中连接数据库需要使用 utf8mb4
另外还可以过滤掉表情符号
// 过滤掉emoji表情
function filterEmoji($str)
{
$str = preg_replace_callback(
'/./u',
function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},
$str);
return $str;
}
MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集。
一、首先修改mysql配置文件
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
二、建立数据库和字段的时候需要使用 utf8mb4
三、程序中连接数据库需要使用 utf8mb4
set names utf8mb4
另外还可以过滤掉表情符号
// 过滤掉emoji表情
function filterEmoji($str)
{
$str = preg_replace_callback(
'/./u',
function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},
$str);
return $str;
}
[最后修改由 admin, 于 2022-09-24 13:55:37]
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2869
这篇日志没有评论。
此日志不可发表评论。