function utf16toEntities(str){
var patt=/\ud800-\udbff/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;
}
utf16toEntities(‘😁’);