加密的Twitter提要

时间:2012-02-12 10:44:41

标签: ios ios5 twitter

我正在开发一个iOS应用程序,这将需要Twitter, 我正在使用以下 API

https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&count=2&screen_name=TareqAlSuwaidan

问题在于阿拉伯语, 即文本Feed如下所示

\ u0623 \ u0646 \ u0643 \ u0648 \ u0627 \ u0647 \ u0645

如何获取真实文本(或如何对其进行编码以获得真实文本)?

2 个答案:

答案 0 :(得分:5)

这是未加密的,它是unicode。代码0600 - 06ff是阿拉伯语。 NSString处理unicode。

以下是一个例子:

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

NSLog输出:

  

string:'أنكواهم'

唯一的问题是你看到了什么问题,你得到阿拉伯语文本吗?您使用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 أيدت الثورة السورية منذ بدايتها وارجع لليوتوب واكتب( سوريا السويدان )

答案 1 :(得分:0)

这些是Unicode文字。我认为所需要的就是在你拥有的字符串上使用NSString的{​​{1}}方法。这应该使用stringWithUTF8String:的本机Unicode处理将文字转换为实际字符。例如:

NSString

转换调用(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]使用的字符串的原始字节。我不确定这些代码点是什么,我只是依靠Python来进行转换。