【发布时间】:2012-12-23 15:07:10
【问题描述】:
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 文件。
【问题讨论】:
-
向我们展示您的代码。如果您收到字节,您应该直接将它们写入文件,而不是将任何内容转换为字符串。 byte[] 用于二进制数据。
-
当我收到 byte[] 时,我没有将任何内容转换为字符串。我发送到 Web 服务的字符串和字节 [] 以某种方式合并,但该合并不能很好地附加 \n 和 \t。所以,我正在替换我发送的字符串。
-
这是一件好事,但是您仍然没有显示您的代码,因此仍然无法找到其中可能存在的问题。
-
好吧,我现在没有源代码,但我明天会发布。但重点是我有一些字符串,它们包含转义字符,然后我用这些字符串作为参数和一个 byte[] 参数调用 Web 服务。我正在尝试使用该字符串上的 replace/replaceAll 方法来保存我的转义序列,但仍然没有成功。
-
您可能无法访问 Web 服务,但您似乎知道它应该做什么。您能否描述一下您要发送到 Web 服务的内容、您期望返回的字节数组包含的内容以及它实际包含的内容?