java - StringEscapeUtils 取消转义除换行符 (\n) 之外的所有内容

标签 java spring-boot stringescapeutils

我尝试使用 Apache Commons 库(v. 1.7)中的 StringEscapeUtils 来转义和取消转义大文本,该库将从数据库(在本例中为 H2 数据库)存储和检索。除了换行符之外,几乎所有特殊字符都已成功转义和未转义。我正在使用 Spring Boot (v2.1.3.) 和 thymeleaf。

例如,如果我尝试存储以下文本:

 He didn't say, "Stop!"

 This is a new line!

它将把文本存储为:

He didn't say, \"Stop!\"\r\n\r\nThis is a new line!

这很好。但是当我使用 unescapeJava 方法对其进行转义时,新行字符无法正常工作。我明白了

He didn't say, "Stop!" This is a new line!

编辑:

unescapeJava 方法在文本显示在 html 文本区域中时起作用。但是当它呈现为纯 html 时,换行符不起作用。

最佳答案

The unescapeJava method works when the text is displayed in a html textarea. But when it is rendered as plain html, the linebreak is not working.

请检查您的 HTML 源代码,它很可能就在那里

在 HTML 中,源代码中的换行符不会在屏幕上引入换行符,如果您愿意,您应该将换行符替换为例如 <br/>标签。

查看更多信息:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br

关于java - StringEscapeUtils 取消转义除换行符 (\n) 之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57766763/

相关文章:

java - Java 中正确的 xml 转义

java - 为什么 Apache Commons StringEscapeUtils escapeXML10 不能在 groovy 中工作?

java - Websphere 7 JSF

java - 对象的隐式与显式传递

spring-boot - 连接关闭异常 : Premature end of chunk coded message body with apache hhtpclient 4. 5.5

java - 转义字符串的标准库(没有准备好的语句)

java - Intent 不可序列化

java - 解决错误java.lang.NoSuchMethodError : org. codehaus.groovy.ast.ModuleNode.getStarImports()Ljava/util/List;

json - 如何将两个不同的对象传递给 postman 中的 POST 请求以测试 RESTful API?

java - 如果 Web 服务出现故障,如何重试?