0

GET リクエストの JSON レスポンスを解析しようとしています。文字がラテン語の場合は問題ありません。

ただし、ラテン語でない場合、メッセージは正しく出力されません。ギリシャ語を試してみたところ、「πανος」の代わりに「& pi; & alpha; & nu; & omicron; & sigmaf;」が得られました。

応答の解析に使用するコードは次のとおりです。

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

NSLog(@"response %@", responseString);




// array from the JSON string
NSArray *results = [responseString JSONValue];

ajax を使用して Web サイトからの応答を読み取ろうとすると、すべて問題ありません。iPhone からのデータを使用してアプリケーション サーバーに GET 要求を送信しようとする場合も同様です。したがって、データをサーバーに送信してWebサイトから読み取ると、すべて問題ありません。アプリで同じデータを表示しようとすると、「ヒューストンに問題があります」と表示されます。

手がかりはありますか?

編集:誤解を避けるために、これは HTML の問題ではありません。いくつかの readon utf-8 文字については、正しく、自動的にエンコードされることを指摘します。"&pi" は "π" に変換されますが、目的 c は単独でこれを行うようには見えません

4

4 に答える 4

0

混乱があると思います。

πUTF8/Latinのようなテキストエンコーディングとは関係のないHTMLエンティティです。

詳細についてはウィキペディアをお読みください...

主にIzzyが前述したようなこれらのエンティティをデコードするには、パーサーが必要です。

NSString+HTML category and method stringByReplacingHTMLEntities
于 2011-02-17T07:48:18.503 に答える
0

私も同じ問題に直面しましたが、JSON パーサーを変更することで解決しました。SBJSONParser の使用を開始しましたが、適切な結果が得られています。これは私が使用したコードスニペットです

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
SBJSON *parser=[[SBJSON alloc]init];
NSArray *JSONData = (NSArray*)[parser objectWithString:returnString error:nil];
于 2011-02-17T07:57:43.287 に答える
0

次のコード スニペットを使用してみてください。

  NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

  NSString *decodedString = [NSString stringWithUTF8String:[responseString cStringUsingEncoding:[NSString defaultCStringEncoding]]];


  NSLog(@"response %@", decodedString);


  // array from the JSON string
  NSArray *results = [decodedString JSONValue];
于 2011-02-16T14:07:03.543 に答える
0

Cocoanetics NSString+HTML カテゴリとメソッド stringByReplaceingHTMLEntities メソッドを見てください。次の場所にあります。

https://github.com/Cocoanetics/NSAttributedString-Additions-for-HTML/blob/master/Classes/NSString%2BHTML.m

これは、多くの HTML エンティティとそれに対応する Unicode 文字のかなりまともなリストです。

于 2011-02-16T14:02:59.193 に答える