數據庫處理算法
更換字符集utf8-->utf8mb4數據庫
JS處理
spa
將表情轉爲字符:code
1 function utf16toEntities(str) { 2 var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 檢測utf16字符正則 3 str = str.replace(patt, function(char){ 4 var H, L, code; 5 if (char.length===2) { 6 H = char.charCodeAt(0); // 取出高位 7 L = char.charCodeAt(1); // 取出低位 8 code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 轉換算法 9 return "&#" + code + ";"; 10 } else { 11 return char; 12 } 13 }); 14 return str; 15 }
將字符轉爲表情:blog
1 function uncodeUtf16(str){ 2 var reg = /\&#.*?;/g; 3 var result = str.replace(reg,function(char){ 4 var H,L,code; 5 if(char.length == 9 ){ 6 code = parseInt(char.match(/[0-9]+/g)); 7 H = Math.floor((code-0x10000) / 0x400)+0xD800; 8 L = (code - 0x10000) % 0x400 + 0xDC00; 9 return unescape("%u"+H.toString(16)+"%u"+L.toString(16)); 10 }else{ 11 return char; 12 } 13 }); 14 return result; 15 }