一、背景
接口请求,有时候会对中文有编码要求。作为参数进行GB2312编码;作为返回数据,显示时则需要客户端进行解码。
二、GB2312
一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集--基本集》
GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。
三、源码
1、GBK编码
/**
GBK(GB2312)编码
@param str 原字符串
@return 编码后的字符串
*/
+ (NSString *)GBKTransCoding:(NSString *)str {
//校验
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 {
//校验
if (![str isKindOfClass:[NSString class]]) return @"";
if (!str.length) return @"";
//解码
return [str stringByRemovingPercentEncoding];
}
网友评论