码迷,mamicode.com
首页 > Web开发 > 详细

PHP-处理emoji表情

时间:2020-06-28 13:18:41      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:不能   emoji   sql   turn   php   cal   utf8编码   方法   lang   

MySQL中的UTF8编码每个字符只支持最大3字节,而emoji是4个字节的,不能直接存储进去,所以,需要将emoji转换一下。

这边提供一个将4个字节的utf8编码转成&#xxxxxx;的方法:

$content = preg_replace_callback(‘/[\x{010000}-\x{10ffff}]/u‘, function($v){
    return ‘&#‘.current(unpack(‘N‘,iconv(‘UTF-8‘, ‘UCS-4‘, $v[0]))).‘;‘;
}, $content);

解码也简单,反过来一下就好了

$content = preg_replace_callback(‘/&#(\d+);/‘, function($v){
    if ($v[1] >= 0x10000 && $v[1] <= 0x10ffff) {
        return iconv(‘UCS-4‘, ‘UTF-8‘, pack(‘N‘,$v[1]));
    }
    return $v[0];
}, $content);

PHP-处理emoji表情

标签:不能   emoji   sql   turn   php   cal   utf8编码   方法   lang   

原文地址:https://www.cnblogs.com/Raincry/p/13202197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!