实现思路
- 了解编码格式:UTF - 8是一种变长编码,可表示Unicode字符集中所有字符,常用于网页、数据库等。GBK是中文编码,兼容GB2312,主要用于简体中文环境。
- 使用Foundation框架:利用
NSString
和NSData
类进行转换。NSString
处理文本,NSData
处理字节数据。从NSString
转换为NSData
时指定源编码,从NSData
转换回NSString
时指定目标编码。
可能用到的方法
NSString
的dataUsingEncoding:allowLossyConversion:
方法:将NSString
转换为NSData
,其中encoding
参数指定源编码,allowLossyConversion
决定是否允许有损转换。
NSString
的initWithData:encoding:
方法:从NSData
创建NSString
,encoding
参数指定目标编码。
关键代码片段
// UTF - 8转GBK
NSString *utf8String = @"需要转换的UTF - 8字符串";
NSData *utf8Data = [utf8String dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
NSString *gbkString = [[NSString alloc] initWithData:utf8Data encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];
// GBK转UTF - 8
NSString *gbkOriginalString = @"需要转换的GBK字符串";
NSData *gbkData = [gbkOriginalString dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000) allowLossyConversion:NO];
NSString *utf8ConvertedString = [[NSString alloc] initWithData:gbkData encoding:NSUTF8StringEncoding];