2012-03-15 147 views
0

我收到服务器的JSON数据,里面有一些字符串。我使用SBJsonhttps://github.com/stig/json-framework来获取它们。iOS:解码utf8字符串

但是当我输出一些字符串在UILabel它们看起来是这样的:\u0418\u043b\u044c\u044f\u0411\u043b\u043e\u0445(这是西里尔字母符号)

而且它的所有权利与拉丁字符

如何我把它解码成常态符号?

一些代码有关获取数据:

NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    NSString *stringData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSDictionary *object = [parser objectWithString:stringData error:nil]; 
    NSString *comments = [NSString stringWithFormat:@"%@",[object valueForKey:@"comments"]]; 

字符串评论有一个非常特殊的格式,所以我做这样stringByTrimmingCharactersInSet一些操作,

stringByReplacingOccurrencesOfString

NSArray* json_fields = [comments_modified componentsSeparatedByString: @";"];

得到最终数据。

这是一些修整后接收到的数据的一个例子/更换(它是NSString* comments):

"already_wow"=0;"date_created"="2012/03/1411:11:18";id=41598;name="\U0418\U043b\U044c\U044f\U0411\U043b\U043e\U0445";text="\U0438\U043d\U0442\U0435\U0440\U0435\U0441\U043d\U043e";"user_id"=1107;"user_image"="user_image/a6/6f/96/21/20111220234109510840_1107.jpg";"user_is_deleted"=0;username=IlyaBlokh;"wow_count"=0; 

你看到字段textname被编码

如果我在视图上显示它们(在例如UILabel),它们仍然看起来一样

+0

@Erik Aigner,是的,我的代码是一样的。看看我更新的问题 - 你看,我使用'NSUTF8StringEncoding'配置一个字符串,然后解析它 – 2012-03-15 07:59:25

回答

0

也许返回的字符串只是unicode字符串表示形式(ascii字符串),这意味着不会返回使用utf8编码的内容,尝试第用NSASCIIStringEncoding得到stringData

+0

我为整个字符串稍后制作小写 – 2012-03-15 10:21:31

+0

@IlyaBlokh尝试我编辑的方法。 – 2012-03-15 11:00:43