我正在从SQL Server 2008数据库中获取一个String到我的Java代码中,并尝试打印它。不幸的是,换行符转义序列不会自动转换为换行符。
我知道原因是我们没有将字符串放在数据库表的双引号内。以下是存储在varchar列中的示例值:
Remarks \nTestRemarks Issue\nTestIssue\n\nRegards \nSunny
当我在日志文件上打印时,它与\ n一起打印。我的应用程序约定不允许我将String存储在Database varchar列内的双引号中,因此我选择使用Apache
StringEscapeUtils.unescapeJava(str)
显式取消转义。不幸的是,结果是第一个和最后一个换行符转义序列已成功转换为换行符,但其余所有换行符转义符保持不变。如果我在数据库中的换行符转义序列之前放置了空格,那么它将被识别并转换,但不会被其他对象转换。您能帮我解决这个问题吗? 最佳答案
一旦检索到相反的东西,即StringEscapeUtils.escapeJava(str)或从数据库中检索它后重复StringEscapeUtils.unescapeJava(str),该如何做呢?任何一种都可能起作用。