node.js将html字符实体编码转化成可识别的简体中文汉字
2016-10-23 分类: nodejs笔记
node.js html 实体 编码 转化 汉字 中文
如果在node.js后台输出的内容是:
£€
其实这些不是乱码,只是html实体编号
把html字符实体转化成中文可以使用如下代码(适用于node.js服务器端):
function htmlDecode(str) {
// 一般可以先转换为标准 unicode 格式(有需要就添加:当返回的数据呈现太多\\\u 之类的时)
str = unescape(str.replace(/\\u/g, "%u"));
// 再对实体符进行转义
// 有 x 则表示是16进制,$1 就是匹配是否有 x,$2 就是匹配出的第二个括号捕获到的内容,将 $2 以对应进制表示转换
str = str.replace(/(x)?(\w+);/g, function($, $1, $2) {
return String.fromCharCode(parseInt($2, $1? 16: 10));
});
return str;
}