2013-05-29 42 views
0

我試圖將其轉換:轉換十六進制碼轉換成Unicode在Objective-C

NSString *encodedString = @"Les Profs (Comédie)" 

到另一個NSSting以Unicode:

NSString *decodedString = @"Les Profs (Comédie)" 

我無法弄清楚如何做到這一點輕鬆...

在此先感謝!

+0

這是編碼角色的一種奇怪的方式。它從哪裏來的? –

+0

這就是我的API返回給我的......你會在這裏找到更多的信息:http://webdesign.about.com/od/localization/l/blhtmlcodes-fr.htm –

+0

'奇怪'?它是常規的XML/HTML字符編碼。 –

回答

1

您的編碼字符串包含html實體。您需要將它們轉換爲unicode表示才能獲得所需的解碼字符串。

對於轉換,你可以使用下面的NSString extention
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMNSString%2BHTML.h
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMNSString%2BHTML.m

這裏是如何ü將字符串解碼然後

decodedStr = [encodedStr gtm_stringByUnescapingFromHTML]; 
+0

上述鏈接已死亡。試試https://github.com/siriusdely/GTMNSString-HTML – rmaddy

+0

一個不錯的swift 3解決方案:http://stackoverflow.com/a/39344394/1266215 – Geva

0

CFStringTransform是核心基礎功能,爲您提供您所需要的。