我尝试使用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!
编辑:
当文本显示在html textarea中时,unescapeJava方法起作用。但是当将其呈现为纯html时,换行符不起作用。
答案 0 :(得分:2)
当文本显示在html textarea中时,unescapeJava方法起作用。但是当将其呈现为纯html时,换行符不起作用。
请检查您的HTML源代码,很可能是
在HTML中,如果您希望将换行符替换为<br/>
标签,则源代码中的换行符不会在屏幕上引入换行符。
查看更多信息:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br
答案 1 :(得分:0)
@Martin van Wingerden所说的是正确的。源代码中的换行符不会在屏幕上引入/渲染它。我找到了这个线程
Render a string in HTML and preserve spaces and linebreaks
这说明您可以使用CSS空格:预包装,可在格式化时保留空格和换行符。