私はwincp1251のサーバから応答を受け取り、restkitはマップされたオブジェクト文字列にnilを返します。私はrestKitがRKClient(https://github.com/RestKit/RestKit/commit/0ead8a922219ec42ec6dae6ebe59139a1fd589ae)のプロパティdefaultHTTPEncodingを持っていることを知っていますが、これをどうすれば使用できますか?Restets for IOSのエンコーディングを、Utf8からWincp1251に変更するには
答えて
私はあなたのサーバーがJSONを返すと仮定しています。この場合、サーバーはJSON specに準拠していないため、更新する必要があります。具体的には:
JSONテキストがUnicodeで符号化されるエンコード。デフォルトのエンコーディングは UTF-8です。注意すべき
重要な点は、JSONのデシリアライゼーションは、データオブジェクト(NSJSONSerialization
)を要するためRestKitは、文字列に応答をアンパックしないことです。そして再び、スペックの状態は:UTF-8、UTF-16LE、UTF-16BE、UTF-32LE、UTF-32BE:
データはJSONの仕様に記載されている5つのサポートされるエンコーディングのいずれかでなければなりません。データにBOMがある場合とない場合があります。解析に使用する最も効率的なエンコーディングはUTF-8です。このメソッドに渡されるデータをエンコーディングする場合は、UTF-8を使用してください。
あなたはそれを変更することはできませんのであれば、サーバーの応答を処理するために、あなたは、自分でダウンロードし適切なエンコーディングにデータを変換し、JSONを解凍し、その後にマッピング操作を作成対処する必要がありますそれを使用してください。
を見てください。しかし、私はxmlレスポンスを持っていて、jsonではないのですか? –
あなたは本当に質問にその情報を追加する必要がありますが、私は問題が同じであり、シリアル化が未知の/サポートされていないエンコーディングエラーを投げていると思います。実際にデータを別々にダウンロードしてデコードしてから、一度そのデータをより良いフォーマットにマップする必要があります。 – Wain
ありがとう、それは良い説明、あなたは私の一日を保存する! –
- 1. ios UTF8エンコーディングからnsstring
- 2. Python UTF16LEファイルからUTF8エンコーディング
- 3. DOS737からUTF8へのtxtファイルのエンコーディングを変換する
- 4. RailsプロジェクトでMysqlエンコーディングutf8をutf8mb4に変換するには
- 5. 任意のエンコーディングをPythonのutf8に変換しますか?
- 6. PHPエンコーディングの問題(utf8からiso)
- 7. NSStringのエンコーディングを変更するには?
- 8. C++ UTF8エンコーディング
- 9. Java UTF8エンコーディング
- 10. MemoryStream UTF8エンコーディングのStreamReader
- 11. UTF8エンコーディングのデータが変更されました。
- 12. iOS(UTF8からISO-8859-1)
- 13. PHPで内部処理エンコーディングをUTF8に変更する方法はありますか?
- 14. utf8mb4をutf8に変更する
- 15. PythonでUTF8エンコーディングを削除する
- 16. Ruby UTF8エンコーディングの問題
- 17. UTF8をデフォルトのエンコーディングに変換できません
- 18. Rails UTF8エンコーディングの問題
- 19. Alamofire POSTリクエストボディのUTF8エンコーディングを設定するには?
- 20. Doctrineデータベースにデータを保存するときにUTF8エンコーディングをhtmlエンティティに変更する
- 21. Perlエンコーディング - ファイルをUTF8に保存
- 22. iosのソースイメージから顔の肌色を変更するには?
- 23. Python未知のエンコーディングutf8
- 24. RubyのCSV UTF8エンコーディング・エラー
- 25. PythonでUTF8エンコーディングを使用したJSONからCSVへ
- 26. 非utf8エンコーディングをActiveRecordで使用するには?
- 27. UTF8文字エンコーディング、htmlentities、クロスサイトスクリプティング
- 28. PHP、PDO、SLIMフレームワーク、JSONエンコーディングUTF8
- 29. C++でLatin1-UTF8エンコーディングの変更を行う方法(多分Boostで)?
- 30. データを変更せずにテーブルのエンコーディングを変更するには?
ようこそ。 [質問する](http://stackoverflow.com/help/how-to-ask) – JimHawkins