2012-12-23 54 views
0

我在Java中有轉義序列的問題。 我打電話給一個Web服務女巫接受一些字符串參數和一個字節[]參數,並返回byte []。 當我收到該字節[]時,我將它寫入文件並使用Open Office等文本編輯器打開該文件。 一切看起來都很好,但我\ n和\ t被替換爲空格(「」)。 之前使用過此Web服務的用戶表示,如果我將\ n和\ t替換爲字符
,但它仍然不起作用,它將起作用。Java - 轉義序列丟失

我嘗試了幾乎所有我在谷歌上找到的解決方法,但仍然沒有解決它。 我仍然認爲Web服務是好的,這取決於我的新行和製表符,但我不知道是否有任何其他字符組合可以正確替換我的\ 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 [] witch,表示填充的.odt文件。

+0

向我們顯示您的代碼。如果您接收到字節,則應直接將它們寫入文件,而不將任何內容轉換爲字符串。一個字節[]用於二進制數據。 –

+0

當我收到字節[]時,我沒有將任何東西轉換爲字符串。我發送到Web服務的字符串和字節[]以某種方式合併,但合併不會附加\ n和\ t。所以,我正在替換我發送的字符串。 – Nikola

+0

這是一件好事,但你仍然不顯示你的代碼,所以它仍然不可能找到它裏面的錯誤。 –

回答

0

我發現真正的問題是在Web服務中。 Web服務上的XML編寫器總是在逃避諸如&, <, >等字符。而不是獲取序列&#10;&#13;我得到序列&amp;#10;女巫不是換行符。當我打開.odt文件時會顯示這些字符,因爲此&amp;,但是當我手動將它們替換爲原始&#10;時,它們現在顯示並出現換行符。

我試圖把這個&#10;在CDATA標籤,但事件CDATA的括號<>轉義成&lt;&gt;所以,即便CDATA不正確在這種情況下解釋。