node.js html 实体 编码 转化 汉字 中文
如果在node.js后台输出的内容是:
 £€
其实这些不是乱码,只是html实体编号
了解html字符实体:可以参考 https://sdeno.com/?p=5463
把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; }
以上代码是服务器端,如果想运用在客户端上的可以参考:《javascript实现unicode与ASCII相互转换的方法》