正常的字符: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自動將其轉義了