2015-04-06 29 views
0

我打电话给一个API并收到西班牙语回复。在浏览器中它看起来不错,但是当我在应用程序中调用它时,它会显示奇怪的字符。Restkit AFNetworking的回应不正确

例如,在浏览器中我看到Automóvil,但在应用程序中我看到Automóvil

我使用RestKit:

[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObjects:@"text/html",@"charset=UTF-8", nil]]; 

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:baseURL]; 

manager.requestSerializationMIMEType = RKMIMETypeJSON; 
[manager.HTTPClient setDefaultHeader:@"Content-Type" value:@"application/json"]; 
[manager.HTTPClient setDefaultHeader:@"Accept" value:@"application/json"]; 
[manager.HTTPClient setDefaultHeader:@"Accept-Encoding" value:@"gzip, deflate"];` 
+0

这些是[HTML字符引用](http://en.wikipedia.org/wiki/Character_encodings_in_HTML)。在你的平台上肯定会有解码方法。 –

+0

相关:http://stackoverflow.com/questions/1067652/converting-amp-to-in-objective-c –

+0

你如何在应用程序中测试它? – Wain

回答

0

您收到编码的HTML实体(也称为“字符实体引用”)的信息。例如,ó代表ó,因为o上的重音。

理想情况下,您将拥有一个只会以UTF-8格式向您发送所有内容的API,但如果这不可行,则需要自行解码文本。这Stack Overflow question提供了一些解决方案。

+0

如果你只需要支持iOS 7及以上版本,我会尝试[这种方法第一](http://stackoverflow.com/a/21901056/1445366)。 –