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]
,他们声称它仍然发生。
答
您的pageID看起来像是HEX号码,它不仅是亚洲字符,还有一些阿拉伯字体。
- 尝试打印正在发送到Web服务的实际字符串,在他们离开函数之前。所以我想如果你使用
NSURLConnection
然后在你发送数据之前检查。 - 如果正在发送的数据是需要的,那么它不是你的错,但是错误在Web服务的反序列化方法中。
+0
我认为这也是一个解码问题。有成千上万的页面ID,这种情况可能发生在0.01%的时间,我无法复制这种行为。我想我可以编写一个循环来解析所有的数据并拉出所有的页面ID并记录下来。 – fizgig 2012-07-11 20:56:05
在这种情况下,“自我”是什么? – borrrden 2012-07-11 01:45:01
你是如何发送数据的?张贴的pageID并不需要有URLEscaping - 我不认为这是问题。如果你还没有将字符串转换为类似[str dataUsingEncoding:NSUTF8StringEncoding]的NSData对象;这可能是一个问题。 – John 2012-07-11 05:16:25
自我只是一个继承自NSString的类。我没有开始这个项目,我从别人那里拿过来,他们的字符串类有一些实用功能。 – fizgig 2012-07-11 20:58:36