PHP-处理emoji表情
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);
如果您看了本篇博客,觉得对您有所收获,请点击右下角的[推荐]
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读