GYChen 发表于 2012-12-22 21:26:14

转载-----JavaScript如何对后台utf8编码的字符串解码

<div id="cnblogs_post_body">原文
  为了防止xss以及csrf+xss的漏洞,后台统一对字符串进行了转码。结果如下:
原文: JavaScript高级程序设计
编码: JavaScript高级程序设计
  前端写了一段如下代码:
function u2str(text){// transform text in utf8 format to string
      return unescape(text.replace(/&#/g,'%u').replace(/;/g,''));
}  对普通的中文没问题,但是对上面的中英文加载的文本,这个函数就会返回乱码。
  我们可以使用原生的Javascript代码来进行转义。该编码其实不是utf8,而是unicode编码。这里的字符实际上是html实体。
var decodeHtmlEntity =function(str){
return str.replace(/&#(\d+);/g,function(match, dec){
    return String.fromCharCode(dec);
});
};输入:
var str ='JavaScript高级程序设计';
console.log(decodeHtmlEntity(str));输出:

JavaScript高级程序设计
  以下代码用于将正常的字符转变为html实体
var encodeHtmlEntity =function(str){
var buf =[];
for(var i=str.length-1;i>=0;i--){
    buf.unshift(['&#', str.charCodeAt(),';'].join(''));
}
return buf.join('');
};输入:
var str ='高级程序设计';
console.log(encodeHtmlEntity(str));输出:
高级程序设计
页: [1]
查看完整版本: 转载-----JavaScript如何对后台utf8编码的字符串解码