在手机端输入emoji时遇到一个问题(无法储存进数据库)。
搜索问题后发现时数据库的utf8mb4原因(因为emoji是4字节,而utf-8得数据库是3字节)。
然后得到这么一个js函数可以将emoji表情转换为utf-8字符保存
function utf16toEntities(str) { //检测utf16emoji表情 转换为实体字符以供后台存储
var patt=/[\ud800-\udbff][\udc00-\udfff]/g;
str = str.replace(patt, function(char){
var H, L, code;
if (char.length===2) { //辅助平面字符(我们需要做处理的一类)
H = char.charCodeAt(0); // 取出高位
L = char.charCodeAt(1); // 取出低位
code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法
return "&#" + code + ";";
} else {
return char;
}
});
return str;
}
问题就是我想把这个函数转成PHP函数,请问该怎么转啊?????
慕哥6287543
相关分类