2012-03-15 189 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