2012-02-12 77 views

回答

5

這沒有加密,它是unicode。代碼0600 - 06ff是阿拉伯語。 NSString處理unicode。

下面是一個例子:

NSString *string = @"\u0623\u0646\u0643 \u0648\u0627\u0647\u0645"; 
NSLog(@"string: '%@'", string); 

的NSLog輸出:

字符串: 'أنكواهم'

唯一的問題是什麼問題,你看到的,是你獲取阿拉伯文字?您是否在使用NSJSONSerialization來反序列化JSON?如果是的話,應該沒有問題。

這裏是問題URL(不要在生產中使用的代碼同步請求)的例子:

NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&count=2&screen_name=TareqAlSuwaidan"]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 

NSError *error; 
NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; 
NSDictionary *object1 = [jsonObject objectAtIndex:0]; 
NSString *text = [object1 objectForKey:@"text"]; 
NSLog(@"text: '%@'", text); 

的NSLog輸出:

text: '@Naser_Albdya أيدت الثورة السورية منذ بدايتها وارجع لليوتوب واكتب(سوريا السويدان) 
+0

感謝CocoaFu先生,它工作得很好:) – Adel 2012-02-12 13:48:03

0

這些是Unicode文字。我想認爲只需要使用NSStringstringWithUTF8String:方法就可以了。這應該使用NSString的本地Unicode處理將文字轉換爲實際字符。例如:

NSString *directFromTwitter = [twitterInterface getTweet]; 
// directFromTwitter contains "\u0623\u0646\u0643 \u0648\u0627\u0647\u0645" 
NSString *encodedString = [NSString stringWithUTF8String:[directFromTwitter UTF8String]]; 
// encodedString contains "أنك واهم", or something like it 

轉換呼叫([directFromTwitter UTF8String])內的方法調用以訪問字符串的原始字節,由stringWithUTF8String使用。我並不完全確定這些代碼點是什麼,我只是依靠Python來完成轉換。