手机自带输入法emoji字符处理

需求:微信web页面支持emoji表情
主要思想:因为每个emoji表情都有固定的编码,为了避免表情在页面上乱码,我们可以将表情都转换成其对应的实体编码保存

以下是JS转码的方法
/* 将emoji表情字符转换成实体字符 */
var utf16toEntities = function(str) {
    var patt=/[\ud800-\udbff][\udc00-\udfff]/g; /* 检测utf16字符正则 */
    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;
};


参考:https://www.bbsmax.com/A/A2dmVQBzen/

猜你喜欢

转载自pengyao0305.iteye.com/blog/2405244