1

SBJson を使用して解析しようとしている JSON ファイルがあります。

私が受け取っている応答文字列は、私がしたときにアラビア文字を正しく表示しています

NSLog(@"%@",responseString);

しかし、SBJsonパーサーを使用するときはいつでも

NSDictionary *myDictionary = [responseString JSONValue];

そして試してみてください

NSLog(@"%@", myDictionary);

私のアラビア文字は奇妙なものに変換されます:

\U0633\U0627\U0642\U064a\U0629 \U0627\U0644\U0645\U0633\U0643

誰でも助けてください

4

3 に答える 3

4

心配しないで。すべては順調です。

\u0633

と同等です

س

C ++でこれを試してください:

std::wstring tStr = L"\u0633";

tStr は س に等しくなります

NSLogだけが変換されていません

于 2012-05-18T04:22:58.247 に答える
2

これを使って :

NSStringEncoding Arabicencoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsArabic);
    NSString *yourstring = [[NSString alloc]initWithData:yourdata encoding:Arabicencoding];
于 2012-07-03T17:42:09.987 に答える
1

"\U0633\U0627\U0642\U064a\U0629 \U0627\U0644\U0645\U0633\U0643" は、実際には Objective-C が非 ASCII 文字に使用するエンコーディングです。テキストを表示するテスト対象にサブビュー/ラベルを追加してみてください。最初に「responseString」を試してから「myDictionary」を試してみると、同じように表示されます。

于 2012-05-17T22:54:42.933 に答える