commons.lang
StringEscapeUtils 处理字符转义与反转义
common.utils; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.junit.Test; import org.springframework.web.util.HtmlUtils; public class StringUtilsTest { @Test public void test() { String str="你好呀,<input>这里真不错!"; // ---JavaScript // String javascriptStr="<script>alert('你好111')</script>"; // System.out.println(StringEscapeUtils.escapeJavaScript(javascriptStr)); // System.out.println(StringEscapeUtils.unescapeJavaScript(javascriptStr)); //输出 <script>alert(\'111\')</script> // <script>alert('111')</script> // ----SQL // StringBuffer sql = new StringBuffer("select * from inf_moderator_info info where 1=1 "); // if(!CommUtil.isEmpty(keyWord)){ // String keyWord = " ' or 1=你好1 '"; // String keyWord = "很好%"; // System.out.println(StringEscapeUtils.escapeSql(keyWord)); // sql.append(" and info.introduction like '%" + StringEscapeUtils.escapeSql(keyWord) + "%'"); // System.out.println(sql); //输出 '' or 1=1 '' // --html // String html="<A>你好dddd</A>"; // System.out.println(StringEscapeUtils.escapeHtml(html)); // System.out.println(StringEscapeUtils.unescapeHtml(html)); // --escapeJava/unescapeJava 把字符串转为unicode编码 // String java="你好dddd"; // System.out.println(StringEscapeUtils.escapeJava(java)); // System.out.println(StringEscapeUtils.unescapeJava(java)); // \u4F60\u597Ddddd // 你好dddd // String xml="你好dddd"; // System.out.println(StringEscapeUtils.escapeXml(xml)); // System.out.println(StringEscapeUtils.unescapeXml(xml)); // 你好dddd // 你好dddd String a = "<html>吃饭</html>' or 1=1 '<input></input>"; System.out.println(StringEscapeUtils.escapeHtml(a)); // a=StringEscapeUtils.escapeHtml(a); // System.out.println(StringEscapeUtils.unescapeHtml(StringEscapeUtils.escapeHtml(a))); // System.out.println(HtmlUtils.htmlEscape(a)); System.out.println(HtmlUtils.htmlUnescape(a)); System.out.println(StringEscapeUtils.unescapeHtml(HtmlUtils.htmlEscape(a))); // <html>吃饭</html><input></input> // <html>吃饭</html><input></input> // <html>吃饭</html><input></input> // <html>吃饭</html><input></input> // System.out.println(escapeStr(str)); } public static String escapeStr(String str) { if (StringUtils.isEmpty(str)) { return ""; } str = StringEscapeUtils.escapeSql(str); str = StringEscapeUtils.escapeHtml(str); // str = StringEscapeUtils.escapeJava(str); // str = StringEscapeUtils.escapeJavaScript(str); return str; } /** * 字符反转义 * * @param str * @return */ public static String unescapeStr(String str) { if (StringUtils.isEmpty(str)) { return ""; } str = StringEscapeUtils.unescapeHtml(str); str = StringEscapeUtils.unescapeJava(str); str = StringEscapeUtils.unescapeJavaScript(str); return str; } }
相关推荐
代码包含: EscapeUtil.java:特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%...
[CDATA[内容]]>`,这样可以直接在Mapper.xml文件中嵌入原始的SQL语句,而无需进行转义处理。 例如,要在Mapper.xml文件中写入一段包含大于号的SQL语句,可以直接使用CDATA来避免转义: ```xml <![CDATA[ SELECT...
特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%*%)和半角模糊查询(%*或*%)
为了正确地选择这些ID,我们需要进行转义处理。以下将详细解释如何在jQuery中处理这种情况。 首先,理解为什么需要转义。在CSS和jQuery选择器中,方括号`[]`用于属性选择器,斜线`/`在正则表达式中具有特殊含义。...
### 转义表单提交字符处理函数 在Web开发中,确保用户输入的数据安全是非常重要的。不正确的处理可能会导致诸如XSS(跨站脚本攻击)等安全问题。因此,对用户提交的数据进行适当的转义是至关重要的。本文将详细介绍...
特殊字符,如反斜线(\)在SQL语句中具有特殊的含义,如果不进行转义处理,可能会导致SQL语句执行错误,甚至引起安全问题。 在使用pymysql插入数据之前,通常采用`connection.escape(str)`方法对字符串数据进行转义...
因此,开发者在插入用户输入的数据到网页时,应确保对特殊字符进行转义处理,以保障网站的安全性。 总的来说,了解和掌握HTML转义字符、JavaScript转义符以及相关的字符对照表,是成为合格的前端开发者的基本技能。...
当我们从文件或其他非内存存储中读取 JSON 字符串时,这些字符串通常已经经过了转义处理。如果不进行反转义操作,直接使用 `JSON.parse()` 方法将会导致语法错误,因为 JSON 解析器期望的是未转义的原始 JSON 数据。...
在编程和数据库交互时,确保数据安全至关重要,尤其是在插入数据到数据库之前,必须对特殊字符进行转义处理。这是因为不转义的特殊字符可能导致SQL注入等安全问题,从而造成数据破坏、信息泄露甚至整个系统的瘫痪。...
在小程序中,接收后端接口数据时,如果数据包含HTML特殊字符,我们需要在渲染到页面之前对它们进行转义处理。微信小程序提供了`wx escape`方法,可以用于对字符串进行转义。例如: ```javascript let unsafeString ...
为了解决这个问题,可以使用Java来实现对这些特殊字符的转义处理。 #### 三、代码分析 下面是一段示例代码,用于清除HTML标签,并提供了一些额外的功能: ```java import java.util.HashMap; import java.util.Map...
在Java中,使用正则表达式处理特殊字符转义时,可能会遇到一些问题。例如,尝试使用`*`作为正则表达式的部分时,如果不进行转义,会抛出`java.util.regex.PatternSyntaxException: Dangling meta character '*' near...
在VB.NET中,字符串的定义方式与C#中的verbatim字符串类似,不需要额外的转义处理。例如: ```vbnet Dim test As String() = New String() {"\", "\\"} Dim reg As New Regex("\$") For Each s As String In test ...
现代前端框架如React、Vue等通常内置了安全机制,可以自动对用户输入的数据进行转义处理,开发者只需遵循框架的最佳实践即可。 #### 三、案例分析 假设在一个简单的聊天应用中,用户输入了一段包含JavaScript代码...
通过对ibatis框架下SQL语句中特殊字符处理方法的详细分析,我们可以看到,合理地使用字符串转义处理结合动态SQL标签,可以有效地解决特殊字符带来的问题。这样不仅可以保证查询的准确性,还可以提高代码的健壮性和...
易语言的文本处理功能强大且灵活,能够方便地处理这些转义字符。在描述中提到的"文本转义格式化源码"是一个基础的实现,它仅包含了`\t`、`\r`和`\n`这三个基本的转义字符处理。对于更复杂的转义序列,如`\b`(退格符...
NULL 博文链接:https://herry.iteye.com/blog/1976955
这是为了确保在所有情况下,获取的数据都经过了正确的转义处理,从而避免潜在的安全漏洞。 另一个相关的设置是magic_quotes_runtime,它影响从外部数据源获取的数据是否被反斜线转义。这个选项可以在运行时被修改,...