【问题标题】:Newline escape sequence not unescaping in proper way in Java换行符转义序列在 Java 中没有以正确的方式取消转义
【发布时间】:2014-07-17 14:11:10
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    一旦你从数据库中检索到它,你是否可以做相反的事情,即 StringEscapeUtils.escapeJava(str) 或重复 StringEscapeUtils.unescapeJava(str)。任何一个都可以。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-15
        • 2018-02-25
        • 2010-10-27
        • 1970-01-01
        • 2011-03-02
        • 2014-10-20
        • 2012-11-12
        • 1970-01-01
        相关资源
        最近更新 更多