wincp1251 でサーバーから応答を受け取り、restkit はマップされたオブジェクト文字列に nil を返します。restKit には RKClient( https://github.com/RestKit/RestKit/commit/0ead8a92219ec42ec6dae6ebe59139a1fd589ae ) に プロパティ defaultHTTPEncoding があることを知っています。
1 に答える
サーバーが JSON を返していると仮定しています。この場合、JSON 仕様に準拠していないため、サーバーを更新する必要があります。具体的には:
エンコーディング
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 をアンパックしてから、それを使用するマッピング操作を作成する必要があります。