2012-05-18 25 views
0

我正在開發iOS應用程序,我有一個UIWebView女巫調用JavaScript功能女巫還給我一個文本編碼,這段文字我使用NSString方法stringByReplacingPercentEscapesUsingEncoding但該方法的問題進行解碼是我不能解碼像這樣的特殊caractérs:%u2019。我如何解碼這些caracteres? (%uxxxx)感謝您的回答NSString的解碼非標準%的

回答

0

這看起來像UTF8編碼,不是百分比編碼。這是Unicode編碼之一。我可能錯在哪一個。但我認爲它是UTF8。

你應該解碼,使用像stringWithUTF8String的方法(如果數據已經是一個NSString)或initWithData:編碼:(如果從JavaScript中的數據的NSData)

+0

但當我使用stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding它返回一個空值給我 – samir

0

每一個忙碌的誰回答到首先感謝我的問題,但我選擇了這種解決方案:

Unicode字符的非標準編碼:%uxxxx,其中xxxx是一個Unicode值,表示爲四個十六進制數字。此行爲未由任何RFC指定,並已被W3C拒絕。 ECMA-262的第三版仍包含使用此語法的escape(string)函數,但也包含一個encodeURI(uri)函數,該函數可轉換爲UTF-8並對每個八位字節進行百分比編碼。

我已更改JavaScript函數使用escape()函數以encodeURIComponent(uri)方法對字符串進行編碼;並在目標C代碼我使用標準函數來解碼我的字符串- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding