我有一个 iOS 应用程序,我们遇到了一些似乎与编码问题有关的错误,因为某些内容在到达服务器时被截断。这是有问题的,因为它一直在扰乱我们的身份验证机制,这涉及对发布的内容进行哈希处理(以及其他一些内容,但这是基础知识)。
到目前为止,我们还无法在本地重现该问题。我们有一个理论,它与表情符号键盘之类的东西有关;但我尝试过发布表情符号、国际字符以及我能想到的一切。当我尝试时,一切都会正确发布。我知道 ios 4 和 5 之间 ios 对表情符号的编码方式有所不同;我们已经设法与我们的一些客户进行了交谈,试图了解他们正在使用什么,通常是 iOS 6,iPhone 4s 或 5(就像我们的测试设备一样,我已经测试过使用 ios 5 和 6) ...所以它似乎与操作系统无关。
这就是我们为帖子设置请求正文的方式。
[req setHTTPBody:[paramString dataUsingEncoding:NSUTF8StringEncoding]];
以前,我只是将内容类型设置为:
[req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
我的理论是,明确内容类型中的字符集可能会解决它:
[req setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
所以我的问题是,这很疯狂吗?您认为明确将字符集设置为 UTF-8 会解决问题吗?您可以推荐任何其他故障排除技术来找出问题所在?