Java 转义工具 - Apache StringEscapeU

2023-11-08  本文已影响0人  Tinyspot

1. 引入依赖

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.10.0</version>
</dependency>

导包 import org.apache.commons.text.StringEscapeUtils;

2. UniCode 编解码

@Test
public void escapeUnicode() {
    String name = "工程师";
    String unicode = StringEscapeUtils.escapeJava(name);

    String dest = StringEscapeUtils.unescapeJava(unicode);

    System.out.println(unicode + "; " + dest);
}

打印结果:
\u5DE5\u7A0B\u5E08; 工程师

3. HTML 转义

3.1 转义 html

@Test
public void escapeHtml() {
    String origin = "<div>html demo</div>";
    String dest = StringEscapeUtils.escapeHtml4(origin);
}

3.2 反转义 html

@Test
public void unescapeHtml() {
    String input = "&lt;div&gt;html demo&lt;/div&gt;";
    String result = StringEscapeUtils.unescapeHtml4(input);
}

4. 转义XML

@Test
public void escapeXml() {
    String xml = "<name>百知</name>";
    String escapeXml = StringEscapeUtils.escapeXml11(xml);

    String dest = StringEscapeUtils.unescapeXml(escapeXml);

    System.out.println(escapeXml + ", " + dest);
}

打印结果:
&lt;name&gt;百知&lt;/name&gt;, <name>百知</name>

5. 转义JSON

@Test
public void escapeJson() {
    String jsonStr = "{\"id\":1000001, \"name\":\"Tinyspot\"}";
    String escapeJson = StringEscapeUtils.escapeJson(jsonStr);

    String dest = StringEscapeUtils.unescapeJava(escapeJson);

    System.out.println(escapeJson + ", " + dest);
}

打印结果
{\"id\":1000001, \"name\":\"Tinyspot\"}, {"id":1000001, "name":"Tinyspot"}

上一篇 下一篇

猜你喜欢

热点阅读