【问题标题】:Restkit AFNetworking response is not properRestkit AFNetworking 响应不正确
【发布时间】:2015-06-11 10:23:32
【问题描述】:

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

例如,在浏览器中我看到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"];`

【问题讨论】:

  • 这些是HTML character references。在你的平台上肯定有一种解码方法。
  • 你如何在应用中测试它?
  • [[RKObjectManager sharedManager].HTTPClient getPath:@"api.php" 参数:参数成功:^(AFHTTPRequestOperation *操作,id responseObject){}失败:^(AFHTTPRequestOperation *操作,NSError *错误) { }]; }
  • 我在上面这样称呼它

标签: ios afnetworking restkit


【解决方案1】:

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

理想情况下,您应该有一个 API 可以将所有内容以 UTF-8 格式发送给您,但如果这不可能,您需要自己解码文本。这个Stack Overflow question 提供了许多解决方案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多