我試圖得到一些數據,包含來自iOS的UTF-8字符,結束了失敗:(UTF8數據不能保存爲NSString的正確
JSON數據來自Rails應用程序。
render :json => @users
片斷如下所示:
{"likes_num":554,"name":"\u62c9\u7f8e\u4eb2\u5386\u8bb0\u00a0","remote_id":63573783,"remote_identifier":"douban"}
使用這兩種
NSJSONSerialization
一ndSBJson
失敗。看起來utf-8字符串被修改爲name = "\U62c9\U7f8e\U4eb2\U5386\U8bb0\U00a0";
(使用NSLog(@"%@", json)
)。NSLog(@"%@", [json objectForKey:@"name"])
只是沒有返回,不留下任何日誌。- 將名稱保存爲
NSString *name
和NSLog
保持不變,但在調試時打印說明name
,utf-8語句完美顯示。 - 試過
[name description]
,什麼都沒有。
請給我一些提示,弄清楚我的utf-8句子真的發生了什麼。 謝謝先進。
UPDATE:其他的項值正常工作,即[json objectForKey:@"remote_identifier"]
給人douban
,只有@"name"
下來沒有理由。
戴夫
你的意思是,如果數據不是一個合法的UTF-8字節序列,該jsonString將是零?在我的情況下,可以正確地從數據中提取jsonString。 – 2012-03-09 21:29:56