1

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

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

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

4

2 回答 2

1

一旦你检索它,做相反的事情怎么样,即 StringEscapeUtils.escapeJava(str) 或从数据库检索它后重复 StringEscapeUtils.unescapeJava(str) 。任何一个都可能工作。

于 2014-05-28T11:49:49.913 回答
0

我的设置以奇怪的方式工作。出于某种原因,在系统重启和 eclipse 重启和 tomcat 重启后,一切似乎都可以无缝运行。关闭答案为非问题

于 2014-05-28T11:54:52.450 回答