介紹一下IOS開(kāi)發(fā)經(jīng)常接觸的兩種編碼類型——UTF-8,GB_18030_2000
UTF-8簡(jiǎn)介
UTF-8國(guó)際通用的編碼標(biāo)準(zhǔn),通用性強(qiáng),支持大部分漢字,但對(duì)于漢字的編碼采用3字節(jié)的方式,編碼方式不如GB_18030_2000簡(jiǎn)潔。對(duì)于向服務(wù)器請(qǐng)求信息的編碼格式,為了保證其通用性一般使用UTF-8.
GB_18030_2000簡(jiǎn)介
GB_18030_2000是GBK的取代版本,它的主要特點(diǎn)是在GBK基礎(chǔ)上增加了CJK統(tǒng)一漢字?jǐn)U充A的漢字(GB_18030_2000和GBK都是漢字編碼的重要標(biāo)準(zhǔn)),通用性較強(qiáng),支持的漢字多于UTF-8,但對(duì)于英文采用2字節(jié)編碼,比較占用空間。由于是國(guó)標(biāo)編碼標(biāo)準(zhǔn),國(guó)外的一些網(wǎng)站基本上不支持。對(duì)于服務(wù)器返回信息(一般為UTF-8編碼),為了保證其漢字顯示的完整性,盡量轉(zhuǎn)為GB_18030_2000再顯示出來(lái)。
服務(wù)器返回結(jié)果的互相轉(zhuǎn)換(GB_18030_2000)
獲取到GB_18030_2000在Encoding中的枚舉值,
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding
(kCFStringEncodingGB_18030_2000);
NSString *responseString=[[NSString alloc] initWithData:yourData
encoding:enc];
服務(wù)器返回結(jié)果的互相轉(zhuǎn)換(UTF-8)
NSString *utf8Str = [[NSString alloc] initWithData:response
encoding:NSUTF8StringEncoding];
NSData *oData=[utf8Str dataUsingEncoding:NSUTF8StringEncoding];