我在数据库中有一些文本(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
字符 转换为\\n\\r
,这意味着没有任何 <我的应用程序中最终字符串中的strong>LF和CR字符。
最后,我在程序中将\n\r字符替换为\n\r,问题就解决了。 (queried_column.replace("\\n\\r","\r\n")
)
现在,我的问题是为什么 Java 有这种行为?
最佳答案
由于数据库中的文本不包含 LF 或 CR 字符,因此包含 \
字符,n
字符和 r
字符。因此,Java 不会转换任何内容,它会为您提供准确数据库中的文本。
您取消转义这些特殊字符的解决方案是正确的。
关于java - 为什么Java在从DB读取它们时将\n\r转换为\\n\\r,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49426914/