使用java 对HTML代码进行转码
/** * 去除HTML字串中的控制字符及不可视字符 * * @param str * HTML字串 * @return 返回的字串 */ public static String escapeHTML(String str) { int length = str.length(); int newLength = length; boolean someCharacterEscaped = false; for (int i = 0; i < length; i++) { char c = str.charAt(i); int cint = 0xffff & c; if (cint < 32) switch (c) { case 11: default: newLength--; someCharacterEscaped = true; break; case ‘\t‘: case ‘\n‘: case ‘\f‘: case ‘\r‘: break; } else switch (c) { case ‘"‘: newLength += 5; someCharacterEscaped = true; break; case ‘&‘: case ‘\‘‘: newLength += 4; someCharacterEscaped = true; break; case ‘<‘: case ‘>‘: newLength += 3; someCharacterEscaped = true; break; } } if (!someCharacterEscaped) return str; StringBuffer sb = new StringBuffer(newLength); for (int i = 0; i < length; i++) { char c = str.charAt(i); int cint = 0xffff & c; if (cint < 32) switch (c) { case ‘\t‘: case ‘\n‘: case ‘\f‘: case ‘\r‘: sb.append(c); break; } else switch (c) { case ‘"‘: sb.append("""); break; case ‘\‘‘: sb.append("'"); break; case ‘&‘: sb.append("&"); break; case ‘<‘: sb.append("<"); break; case ‘>‘: sb.append(">"); break; default: sb.append(c); break; } } return sb.toString(); }
?测试:
@Test public void test_escapeHTML(){ String input="<script>"; System.out.println(ValueWidget.escapeHTML(input)); }
?运行结果:
<script>
?
对应的js方法:
escape: function (a) { a = a ? a : ‘‘; return a.replace(/</g, "\x26lt;").replace(/>/g, "\x26gt;").replace("/\x26/g", "\x26amp;").replace(/"/g, "\x26quot;"); }, unescape: function (a) { a = a ? a : ‘‘; return a.replace(/</g, "\x3c").replace(/>/g, "\x3e").replace(/&/g, "\x26").replace(/"/g, ‘"‘); },
?
?
?
原文:http://hw1287789687.iteye.com/blog/2262113