2012-04-14 9 views
0

JSONフィードを取得していますが、JSONフィードに奇妙な文字が表示されます。たとえば、pass \ u00e9はpasséを表します。私はすでにUTF-8にはNSUTF8StringEncodingUTF-8変換?

と、私は次のJSONを使用しています:

NSString *jsonString = [NSString 
         stringWithContentsOfURL:[NSURL URLWithString:UrlXml] 
         encoding:NSUTF8StringEncoding 
         error:nil]; 


    SBJSON *parser = [[SBJSON alloc] init]; 
    NSDictionary *results = [parser objectWithString:jsonString error:nil]; 

    parser = nil; 
+0

コンソールまたは画面上で、ディスプレイの問題はどこに表示されますか? – QED

+0

画面上、私のテーブルビュー – Jones

+0

'jsonString'がOKならば、それはSBJSONのバグです。さもなければ、エンコーディングの選択は間違っています。 – Costique

答えて

1

を使用すると、JSONフィードから受信しているデータは10 ASCIIバイトとして(それにリテラルテキストpass\u00e9を持っている場合その中にリテラルの 'バックスラッシュ'文字がある場合)、データはUTF-8でエンコードされません。代わりにNSNonLossyASCIIStringEncodingを使用してください。そのエンコーディングは、\u####シーケンスを適切なUnicode文字に変換します。

+0

@Jones:JSONデータに 'pass \ u00e9'または' pass \ u00e9'というテキストが含まれているかどうかを確認することが重要です。後者の場合は、正しい結果が得られます。デコードコードを変更しないでください。ソースデータが間違っているため、修正する必要がある(またはオーナーを修正する)ソースデータです。 –

関連する問題