一般來說,后臺(tái)接口參數(shù)有中文是使用utf-8編碼轉(zhuǎn)換的衙傀,但是有時(shí)候后臺(tái)就不用,比如使用ISO-8859-1统抬,但是iOS的字符串不能直接使用方法火本,像utf-8那么方便了,對(duì)應(yīng)編碼的枚舉并不在NSString這個(gè)類里聪建,而是在CFString里钙畔,我這個(gè)小白還是第一次接觸這個(gè),發(fā)現(xiàn)網(wǎng)上的資料也不是很多(只是百度金麸,不翻墻)擎析,好不容易搞定了,特此做個(gè)記錄挥下,代碼不多揍魂,只有兩行
NSString? 轉(zhuǎn) ISO-8859-1
+ (NSString *)unicode2ISO88591:(NSString *)string {
NSStringEncoding enc =? ? ? CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingISOLatin1);
return [NSString stringWithCString:[string UTF8String] encoding:enc];
}
使用[string UTF8String]是因?yàn)樾枰狢格式的字符串桨醋,類似的,此方法可以轉(zhuǎn)換其他不能用字符串對(duì)象直接轉(zhuǎn)換的編碼格式
ISO-8859-1 轉(zhuǎn) NSString?
//定義ISO-8859-1編碼格式
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingISOLatin1);
//ISO-8859-1格式接收數(shù)據(jù)并進(jìn)行轉(zhuǎn)換
NSString *retStr = [[NSString alloc]initWithData:value encoding:enc];
NSData*resultData = [retStr dataUsingEncoding:enc];
NSArray *resultArr = [NSJSONSerialization JSONObjectWithData:resultData options:NSJSONReadingAllowFragments error:nil];