2011-08-10 4 views
2

私はサーバーからデータ(テキスト)をダウンロードしています。アクセントのためのNSStringエンコードは、狂った文字を表示します

私は両方を試してみました:NSISOLatin1StringEncodingNSASCIIStringEncoding

しかし、私はのようなものを見ておいてください。それはMéxicoなくM\u00e9xico(電子オーバーアクセントで)読まなければならないことに留意{"estado":"M\u00e9xico"}

enter image description here

私は本当にだろう:私は\u00e9が実際にélink.

である。しかしNSStringのは、これを解釈することができず、代わりに私のUILabelsに奇妙なものを印刷していることを考え出したオンライン探し

これについてあなたの助けに感謝します。あなたがitnerestedされている場合

Alsso、あなたはここからデータをダウンロードすることができます:私は、文字通り日間しようとしていると、それは私を殺しているhttp://www.miorden.com/demo/iphone/estadoJSON.php

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.miorden.com/demo/iphone/estadoJSON.php"]]; 

NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 

NSLog(@"Downloaded: %@", string);  

string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.miorden.com/demo/iphone/estadoJSON.php"] encoding:NSISOLatin1StringEncoding error:nil]; 

NSLog(@"Downloaded: %@", string); 

ありがとうございました!

+0

https://github.com/TouchCode/TouchJSON

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.miorden.com/demo/iphone/estadoJSON.php"]]; NSError *error; NSArray *array = [[CJSONDeserializer deserializer] deserializeAsArray:data error:&error]; NSLog(@"Test: %@", [[array objectAtIndex:11] valueForKey:@"estado"]); 

出力? – omz

+0

ブラウザから直接URLにアクセスすると、より良い結果が得られるUTF8を試してみました。私は奇妙な文字も見ています。しかし、私が[jsonlint.com](http://jsonlint.com/)を使って試してみると、私はすべてが正しく見えますが、他に何が間違っているのでしょうか?どのようなコードを使用しますか? NSString、NSStringに直接NSData? – Zebs

+0

PHPの設定はどのようなHTTPコンテンツエンコーディングヘッダですか?あなたがわからない場合は、デバッガツール/プラグインでヘッダー値をチェックすることができます。それが間違っていれば、それを変えることが役に立ちます。 –

答えて

1

データはJSON形式であるため、JSONもデコードする必要があります。

これを使用した例:あなたはNSUTF8StringEncodingを試してみました

2011-08-11 09:35:45.742 enctest[63236:407] Test: México 
+0

問題はエンコーディングですが、解析は問題ではありませんが、お手伝いいただきありがとうございます。 – Zebs

+0

そうは思わない。どのJSONデコーダを使用していますか?私は上にいくつかのコードサンプルを追加してくれました。 – Stefan

3

これはユニコードのようですが、NSUTF8StringEncodingを試してみてください。

+0

私はそれをTextWrangler(ソース文書)で開いたところ、エスケープされているようです。あなたがそれを見たときに正しく表示されますか?私はサーバーが出力でそれをエスケープしていると思います。 –

+0

ブラウザで開くとコードも表示されます。あなたはそのPHPコードに問題があると思いますか?何か提案がありますか?PHPを修正することができます。今はデータベースから取得するだけで、JSONはそれをエコーすることができます。 – Zebs

関連する問題