2012-04-23 13 views
0

私はJsonレスポンスとアクセント文字に問題があります。私はこのコードを持っています。アクセント付きエンコードの問題JSONレスポンス

SBJsonParser *parser = [[SBJsonParser alloc] init]; 

     NSString *responseString = [[NSString alloc] initWithData:self.multipleData encoding:NSASCIIStringEncoding]; 

     NSDictionary *results = [parser objectWithString:responseString ]; 

私はUTF8エンコーディング、ラテンエンコーディング、JSONネイティブパーサ、touchJsonパーサ、および最良の結果を試してみましたが、私はアクセントが含まれているNSDictionaryの値で、この値を取得する:

html = "Ubicado en pleno campo de Barcelona, a 5 minutos del n\U00facleo urbano de la ciudad y a 7 kil\U00f3metros de las playas y el Aeropuerto."; 

私が取得できますかアクセント付きのNSString?

多くのお礼ありがとうございます

+0

ウェブビューでレンダリングした場合、どのように見えますか? – deanWombourne

+0

ノードにもかかわらず、それはhtmlと呼ばれ、Webビューではありません。ごめんなさい。どうもありがとう。 – theomen

答えて

1

実際のデータはどのようなエンコードですか?そのエンコーディングを使用して文字列を作成する必要があります。生のバイトを見てください。アクセント付きのU(\ u00FA)のC3 BAが表示されている場合、データはUTF-8になります。 00FAが表示されている場合は、すべての文字が2バイトの場合はUTF-16、そうでない場合はISO-LATIN-1です。

正しいエンコーディングが得られたら、文字列を実際にどのように印刷して見ていますか?時々NSLogやデバッガは、エスケープされたシーケンスで非ASCII文字を置き換えます。あなたが持っているものが実際に働いているかもしれません。

+0

これを試してみる:NSString * responseString = [[NSString alloc] initWithData:self.multipleData encoding:NSUTF8StringEncoding]; NSLog(@ "responseString%@"、responseString); responseStringログはnull値を返します。これは非常に奇妙です。ありがとう。 – theomen

+0

@theomen:あなたのデータはUTF-8ではないことを意味します(NSStringのドキュメントをチェックしてください)。データが有効でない場合、initメソッドはnilを返します。 – JeremyP

+0

多くのありがとうございます。ちなみに、以前に言ったように、非ASCII文字をエスケープシーケンスに置き換えるにはどうしたらいいですか? – theomen

関連する問題