iPhone XML发布到Web服务 - 某些GUID显示为亚洲字符

问题描述:

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

您的pageID看起来像是HEX号码,它不仅是亚洲字符,还有一些阿拉伯字体。

  1. 尝试打印正在发送到Web服务的实际字符串,在他们离开函数之前。所以我想如果你使用NSURLConnection然后在你发送数据之前检查。
  2. 如果正在发送的数据是需要的,那么它不是你的错,但是错误在Web服务的反序列化方法中。
+0

我认为这也是一个解码问题。有成千上万的页面ID,这种情况可能发生在0.01%的时间,我无法复制这种行为。我想我可以编写一个循环来解析所有的数据并拉出所有的页面ID并记录下来。 – fizgig 2012-07-11 20:56:05