1.JOSN字符串中单引号双引号处理
情况:页面中使用后端传来的json(字符串中有单引号或者双引号),我用的freemarker模板
//json内容,注意key"name" 的值中有个单引号
String json = "{\"name\":\"levi's\",\"age\":\"18\"}";
model.addAttribute("json", json);
//freemarker中的js代码
var user = '${json}';
//freemarker模板引擎处理过后显示到浏览器的js代码
var user = '{"name":"levi's","age":"18"}';
这时因为json中有单引号,所以解析页面取值就会失败。所以要转译json中的特殊字符
//java代码
String json = "{\"name\":\"levi's\",\"age\":\"18\"}";
json = json.replaceAll("'", "'");
//freemarker模板引擎处理过后显示到浏览器的js代码
var user = '{"name":"levi's","age":"18"}'
这样name字段在页面显示的时候就会解析为"levi’s"
常用html转义字符 :
符一个实体名称与对应字符互转的Java工具类
HTML中常用字符实体相互转换
commons-lang3-3.1.jar中StringEscapeUtils
StringEscapeUtils.unescapeHtml4(">script>alert(2);</script>");
//输出:<script>alert(2);</script>
StringEscapeUtils.escapeHtml4("<script>alert(\"2\");</script>");
//输出:<script>alert("2");</script>