2012-07-11 20 views
0

Web服務另一端的合作伙伴說,我們發送的用於跟蹤的某些ID顯示不正確。這是正常現象,2周損壞的人從他們送過來給我們相同的XML文檔:iPhone XML發佈到Web服務 - 某些GUID顯示爲亞洲字符

<pageID>1e7baddf-1d5f-47bc-ab0f-83a9393e189e</pageID> 
<pageID>齎ﺹ鱸}≊扚Წ</pageID> 
<pageID>᜗乯・뤙Ṝ괨Ⅻ㋼</pageID> 

任何想法,爲什麼會發生這種情況?這是非常罕見的,我不知道角色應該是什麼,但它應該是第一項的格式。

我已經試過

[NSMutableString stringWithString: 
[self stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

[(NSString*)CFURLCreateStringByAddingPercentEscapes(
NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[] ", 
kCFStringEncodingUTF8) autorelease] 

,他們聲稱它仍然發生。

+0

在這種情況下,「自我」是什麼? – borrrden 2012-07-11 01:45:01

+0

你是如何發送數據的?張貼的pageID並不需要有URLEscaping - 我不認爲這是問題。如果你還沒有將字符串轉換爲類似[str dataUsingEncoding:NSUTF8StringEncoding]的NSData對象;這可能是一個問題。 – John 2012-07-11 05:16:25

+0

自我只是一個繼承自NSString的類。我沒有開始這個項目,我從別人那裏拿過來,他們的字符串類有一些實用功能。 – fizgig 2012-07-11 20:58:36

回答

1

您的pageID看起來像是HEX號碼,它不僅是亞洲字符,還有一些阿拉伯字體。

  1. 嘗試打印正在發送到Web服務的實際字符串,在他們離開函數之前。所以我想如果你使用NSURLConnection然後在你發送數據之前檢查。
  2. 如果正在發送的數據是需要的,那麼它不是你的錯,但是錯誤在Web服務的反序列化方法中。
+0

我認爲這也是一個解碼問題。有成千上萬的頁面ID,這種情況可能發生在0.01%的時間,我無法複製這種行爲。我想我可以編寫一個循環來解析所有的數據並拉出所有的頁面ID並記錄下來。 – fizgig 2012-07-11 20:56:05