一廊驼、背景
接口請(qǐng)求莲趣,有時(shí)候會(huì)對(duì)中文有編碼要求毅待。作為參數(shù)進(jìn)行GB2312編碼拂到;作為返回?cái)?shù)據(jù)遏匆,顯示時(shí)則需要客戶端進(jìn)行解碼法挨。
二、GB2312?
一個(gè)簡(jiǎn)體中文字符集的中國(guó)國(guó)家標(biāo)準(zhǔn)幅聘,全稱為《信息交換用漢字編碼字符集--基本集》
GBK編碼凡纳,是對(duì)GB2312編碼的擴(kuò)展,因此完全兼容GB2312-80標(biāo)準(zhǔn)帝蒿。
三荐糜、源碼
1、GBK編碼
/**
GBK(GB2312)編碼
@param str 原字符串
@return 編碼后的字符串
*/
+ (NSString *)GBKTransCoding:(NSString *)str {
//校驗(yàn)
if (![str isKindOfClass:[NSString class]]) return @"";
if (!str.length) return @"";
//GBK編碼
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
return [str stringByAddingPercentEscapesUsingEncoding:enc];
}
2葛超、解碼
/**
GBK(GB2312)解碼
@param str 原字符串
@return 解碼后的字符串
*/
+ (NSString *)GBKTransDeCode:(NSString *)str {
//校驗(yàn)
if (![str isKindOfClass:[NSString class]]) return @"";
if (!str.length) return @"";
//解碼
return [str stringByRemovingPercentEncoding];
}