0

我从 wincp1251 中的服务器获得响应,restkit 将 nil 返回到我的映射对象字符串。我知道restKit在RKClient中有一个属性defaultHTTPEncoding(https://github.com/RestKit/RestKit/commit/0ead8a922219ec42ec6dae6ebe59139a1fd589ae),我该如何使用它,它可以帮助我吗?

4

1 回答 1

0

我假设您的服务器正在返回 JSON。如果是这种情况,则需要更新服务器,因为它不符合JSON 规范。具体来说:

  1. 编码

    JSON 文本应以 Unicode 编码。默认编码为 UTF-8。

需要注意的重要一点是 RestKit 不会将响应解压缩为字符串,因为 JSON 反序列化需要一个数据对象 ( NSJSONSerialization)。再次,规范指出:

数据必须采用 JSON 规范中列出的 5 种支持的编码之一:UTF-8、UTF-16LE、UTF-16BE、UTF-32LE、UTF-32BE。数据可能有也可能没有 BOM。用于解析的最有效编码是 UTF-8,因此如果您可以选择对传递给此方法的数据进行编码,请使用 UTF-8。

所以要处理你的服务器响应,如果你不能改变它,你需要自己处理下载,将数据转换为适当的编码,解压 JSON,然后创建一个映射操作来使用它。

于 2016-04-07T08:26:51.480 回答