特殊字符轉義錯誤

 正常的字符: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 

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