我在数据库中有一些文字( H2 ),如下所示:
--------------------------------------------------------
ID | User | Properties |
--------------------------------------------------------
1 | Oli | age=23\n\rgender=MALE\n\r |
--------------------------------------------------------
2 | Umpa | age=23\n\rjob=STUDENT\n\r |
--------------------------------------------------------
当我在我的应用程序中查询这些行时,Java会转换所有\n\r
个字符to \\n\\r
,这意味着没有任何 LF 和 CR 我的应用程序中最后一个字符串中的字符。
最后,我已在程序中用 \ n \ r 替换 \ n \ r 字符,问题解决了。 (queried_column.replace("\\n\\r","\r\n")
)
现在,我的问题是为什么Java有这种行为?
答案 0 :(得分:1)
由于数据库中的文字不包含 LF 或 CR 字符,因此它包含\
个字符,n
字符和r
个字符。因此,Java不会转换任何内容,它会为您提供完全来自数据库的文本。
解除这些特殊字符的解决方案是正确的。