0

我对 Java 中的转义序列有疑问。我正在调用一个 Web 服务女巫,它接受一些字符串参数和一个字节 [] 参数,并返回字节 []。当我收到那个字节[]时,我将它写入文件并使用一些文本编辑器(如 Open Office)打开该文件。一切看起来都很好,但是我的 \n 和 \t 被替换为空格(“”)。以前使用过这个网络服务的人说,如果我用字符替换我的 \n 和 \t它将起作用
但它仍然不起作用。

我几乎尝试了我在谷歌上找到的所有东西来解决这个问题,但仍然没有解决它。我仍然认为网络服务很好,这取决于我将发送什么而不是换行符和制表符,但我不知道是否有任何其他字符组合可以正确替换我的 \n 和 \t。

我很难在这里提出正确的问题,因为我看不到 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 文件。

4

2 回答 2

0

我发现真正的问题出在网络服务中。Web 服务上的 XML 编写器总是对诸如&, <, >等之类的字符进行转义。而不是获取序列&#10;,或者&#13;我得到序列,&amp;#10;女巫不是换行符。因此,当我打开我的 .odt 文件时会显示这些字符&amp;,但是当我手动将它们替换为原始字符时&#10;,它们现在会显示并出现换行符。

我试图把它&#10;放在 CDATA 标记中,但是事件 CDATA 的大括号<>&lt;and转义了&gt;所以,在这种情况下,即使 CDATA 也没有被正确解释。

于 2012-12-25T09:31:56.550 回答
0

\\n是错的。你应该使用\n. 因为第一个是字符 '\' 后跟 n,第二个是字符 '\n' 这是换行符

于 2018-07-02T15:11:34.880 回答