主要思想:因为每个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/