0

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

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

 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!

编辑:

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

4

2 回答 2

2

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

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

在 HTML 中,源代码中的换行符不会在屏幕上引入换行符,如果您希望将换行符替换为例如<br/>标记。

更多信息请访问:

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

于 2019-09-03T08:07:44.210 回答
1

@Martin van Wingerden 所说的是正确的。源代码中的换行符不会在屏幕上引入/呈现它。我找到了这个线程

在 HTML 中呈现字符串并保留空格和换行符

这说明您可以使用 CSS white-space: pre-wrap 来保留格式中的空格和换行符。

于 2019-09-03T08:30:33.847 回答