我在Java中遇到转义序列的问题。
我正在调用一个Web服务,它接受一些String参数和一个byte []参数,并返回byte []。
当我收到那个byte []时,我将其写入文件并用一些文本打开该文件
像Open Office这样的编辑。
一切看起来都很好,但我的\ n和\ t用空格(“”)代替。
之前使用过这个网络服务的人说,如果我用\ 
和

替换我的\ n和\ t,它会起作用,但它仍然不起作用。
我尝试了几乎所有我在谷歌上找到的东西来解决这个问题,但仍然无法修复它。 我仍然认为Web服务很好,这取决于我将发送什么而不是我的换行符和制表符,但我不知道是否有任何其他字符组合将正确替换我的\ n和\ t。 / p>
我在这里提出正确的问题非常困难,因为我无法看到Web服务的实现。 也许我发送的SOAP消息进行了一些转换? 或者还有其他类似的东西:
String replaceString = myString.replace("\\n", "
");
或者我做错了?
编辑:
解决方案应如下所示:
https://github.com/NetAngels/django-webodt/issues/10
但即使这样仍然没有帮助我。
提前致谢。
更新:
我发送一个空的openOffice .odf file (byte[])
,少数包含已登录用户的用户名等的字符串,以及一个包含我在表单上的文本字段中的所有用户输入的HashMap。在该文本字段中,用户经常输入换行符或制表符,并且当通过Web服务合并所有内容时,换行符和制表符将替换为空格。 Web服务运行良好,我可以完全访问它。从web服务方法返回的是byte [],表示填充的.odt文件。
答案 0 :(得分:0)
我发现真正的问题在于网络服务。 Web服务上的XML编写器总是在逃避&, <, >
等字符。而不是获取序列
或
我得到序列&#10;
女巫不是换行符字符。当我打开我的.odt文件时会显示这些字符,因为这是&
,但是当我用原始
手动替换它们时,它们现在会显示并显示换行符。
我尝试将此
置于CDATA标记中,但事件CDATA的大括号<
和>
使用<
和>
进行转义因此,即使是CDATA在这种情况下,没有正确解释。
答案 1 :(得分:0)
\\n
是错误的。您应该使用\n
。
因为第一个是角色'\',后跟n,第二个是角色
'\ n'是换行