特殊字符转义错误

 正常的字符:ss2']][;c  经过转义变成了 ss2']][;c,导致页面展示出来就是乱码。

解决方案:

1、通过java后台转

通过StringEscapeUtils.unescapeHtml4(str)的方法,将转义之后的数据转回来。

例:String s = StringEscapeUtils.unescapeHtml4("ss2']][;c");//s=ss2']][;c

2、通过JS前台转

通过html解析再取值。

例:

//HTML反转义
        function HTMLDecode(text) {
            var temp = document.createElement("div");
            temp.innerHTML = text;
            var output = temp.innerText || temp.textContent;
            temp = null;
            return output; 
        }

var S = HTMLDecode("ss2']][;c");//s=ss2']][;c

注:
ss2']][;c 这种转义之后的值,如果在页面上由html直接拼接,其展示在页面上会是正常的ss2']][;c
但是如果在页面上是由对象接收,在页面上会是ss2']][;c  如下

//后台java返回firstName到前台
String firstName="ss2']][;c";
model.put("firstName",firstName);
return "desktop/shippingaddr/addDlg";


//前台addDlg.vm页面接收值,方法一:

var firstName = $!{addrInfo.firstName};
console.log(firstName);//ss2']][;c

//前台addDlg.vm页面接收值,方法二:
var str =  ""+ "<tr>"
                + "<td>" + firstName + "</td>"
             + "</tr>";
    //将此行tr拼到table里面,到页面上展示出来就是s=ss2']][;c,因为html自动将其转义了

参考博客:https://www.cnblogs.com/jiangxiaobo/p/6598438.html 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章