新行转义序列在Java中没有以适当的方式转义

时间:2014-05-28 11:17:48

标签: java sql-server-2008 newline apache-commons apache-stringutils

我从SQL Server 2008数据库中获取一个String到我的Java代码并尝试打印它。不幸的是,换行转义序列不会自动转换为换行符。 我知道原因是我们没有将字符串放在Database表中的双引号内。以下是存储在varchar列中的示例值:

Remarks \nTestRemarks Issue\nTestIssue\n\nRegards \nSunny

当我在日志文件上打印时,它会与\ n一起打印。我的应用程序约定不允许我将String存储在Database varchar列中的双引号内,因此我选择使用Apache StringEscapeUtils.unescapeJava(str)显式地将其取消。不幸的是,结果是第一个和最后一个换行符转义序列成功转换为换行符,但所有换行符转义都保持不变。如果我在DB中的换行符转义序列之前放置空格,那么它将被识别并转换,但不会被识别和转换。你能帮我解决一下这种情况。

2 个答案:

答案 0 :(得分:1)

一旦你从数据库中检索它,你可以反复执行相反的操作,即StringEscapeUtils.escapeJava(str)或重复StringEscapeUtils.unescapeJava(str)。任何一个人都可以工作。

答案 1 :(得分:0)

我的设置以奇怪的方式工作。由于某些原因,在系统重启和eclipse重启以及tomcat重启之后,一切似乎无缝地工作。将答案结束为非问题