特殊字符以前都是禁止页面输入,这样就简单不容易出错,但最近需求要求能输入特殊字符
整理出java返回json时特殊字符的转义(不转义会破坏json数据格式导致页面读取数据出错)
public static String string2Json(String s) {
StringBuffer sb = new StringBuffer ();
for (int i=0; i<s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '\"':
sb.append("\\\"");
break;
case '\\':
sb.append("\\\\");
break;
case '/':
sb.append("\\/");
break;
case '\b':
sb.append("\\b");
break;
case '\f':
sb.append("\\f");
break;
case '\n':
sb.append("\\n");
break;
case '\r':
sb.append("\\r");
break;
case '\t':
sb.append("\\t");
break;
default:
sb.append(c);
}
}
return sb.toString();
}
javascript版(有时页面显示发现少了一部分,很有可能要对特殊字符转义下)
function string2Json(s) { var newstr = ""; for (var i=0; i<s.length; i++) { c = s.charAt(i); switch (c) { case '\"': newstr+="\\\""; break; case '\\': newstr+="\\\\"; break; case '/': newstr+="\\/"; break; case '\b': newstr+="\\b"; break; case '\f': newstr+="\\f"; break; case '\n': newstr+="\\n"; break; case '\r': newstr+="\\r"; break; case '\t': newstr+="\\t"; break; default: newstr+=c; } } return newstr; }