0

wincp1251 でサーバーから応答を受け取り、restkit はマップされたオブジェクト文字列に nil を返します。restKit には RKClient( https://github.com/RestKit/RestKit/commit/0ead8a92219ec42ec6dae6ebe59139a1fd589ae ) に プロパティ defaultHTTPEncoding があることを知っています。

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 に答える