有的时候服务端数据库是GBK格式,我们存过去的汉字,有些会被转义,比如 龚 ==》䶮
有些场景我们需要显示正确转义后的文本,可以进行如下处理:
/**
* 解析段落的unicode字符,如 䶮
*/
function decodeUnicode(str) {
//替换 & 为 &
let ret = str.replace(/&(#\d+;)/g,'&$1')
//匹配转义字符
let list = ret.match(/&#(\d+);/g);
if(!list) return str;
//数组去重
list = Array.from(new Set(list));
//转义
list.forEach(item=>{
const code = item.replace(/&#(\d+);/,'$1');
ret = ret.replace(new RegExp(item,'g'),String.fromCharCode(parseInt(code)));
});
return ret;
}
结果如下: