emoji表情字符用的是4字节的utf-16编码,一般的utf8编码的数据表字段是无法存入的,要想存入就要改变数据表编码或者转码存入。
下面提供转码和解码方法:
/**
* Emoji原形转换为String
* @param string $content
* @return string
*/
function emojiEncode($content) {
return json_decode(preg_replace_callback("/(\\\u[ed][0-9a-f]{3})/i", function($str) {
return addslashes($str[0]);
}, json_encode($content)));
}
/**
* Emoji字符串转换为原形
* @param string $content
* @return string
*/
function emojiDecode($content) {
return json_decode(preg_replace_callback('/\\\\\\\\/i', function() {
return '\\';
}, json_encode($content)));
}