sql server 2008换行转义序列在Java中没有以正确的方式回避
我正在从SQLServer2008数据库中提取一个字符串到我的Java代码中,并试图打印它。不幸的是,换行符转义序列不会自动转换为换行符。 我知道原因是我们没有将字符串放在数据库表的双引号中。下面是存储在varchar列中的示例值:
Remarks \nTestRemarks Issue\nTestIssue\n\nRegards \nSunny
当我在日志文件上打印字符串时,它将与\n一起打印。我的应用程序约定不允许我将字符串存储在数据库varchar列的双引号内,因此我选择使用Apache StringEscapeUtils.unescapeJava(str)
显式取消它的scape。不幸的是,结果是第一个和最后一个换行符转义序列成功地转换为换行符,但其余所有换行符转义保持不变。如果我在DB中的换行符转义序列前面加上空格,那么它会被识别和转换,但不会被识别和转换。你能帮我解决这个问题吗
# 1 楼答案
我的设置工作正常。由于某种原因,在系统重启、eclipse重启和tomcat重启之后,一切似乎都能无缝地工作。将答案关闭为非问题
# 2 楼答案
如果你再做一次相反的事,怎么样。逃逸基因(str)或重复序列逃逸基因。从数据库中检索到unescapeJava(str)之后。任何一个都可以