NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
s = [[[NSString alloc] initWithData:data encoding:enc] autorelease];
把gbk转utf8,实际上有点误解,只不过默认编码是utf8罢了。oc的默认编码集是没有utf8的,GBK(0x80000632)
- enum {
- NSASCIIStringEncoding = 1, /* 0..127 only */
- NSNEXTSTEPStringEncoding = 2,
- NSJapaneseEUCStringEncoding = 3,
- NSUTF8StringEncoding = 4,
- NSISOLatin1StringEncoding = 5,
- NSSymbolStringEncoding = 6,
- NSNonLossyASCIIStringEncoding = 7,
- NSShiftJISStringEncoding = 8, /* kCFStringEncodingDOSJapanese */
- NSISOLatin2StringEncoding = 9,
- NSUnicodeStringEncoding = 10,
- NSWindowsCP1251StringEncoding = 11, /* Cyrillic; same as AdobeStandardCyrillic */
- NSWindowsCP1252StringEncoding = 12, /* WinLatin1 */
- NSWindowsCP1253StringEncoding = 13, /* Greek */
- NSWindowsCP1254StringEncoding = 14, /* Turkish */
- NSWindowsCP1250StringEncoding = 15, /* WinLatin2 */
- NSISO2022JPStringEncoding = 21, /* ISO 2022 Japanese encoding for e-mail */
- NSMacOSRomanStringEncoding = 30,
- NSUTF16StringEncoding = NSUnicodeStringEncoding, /* An alias for NSUnicodeStringEncoding */
- NSUTF16BigEndianStringEncoding = 0x90000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
- NSUTF16LittleEndianStringEncoding = 0x94000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
- NSUTF32StringEncoding = 0x8c000100,
- NSUTF32BigEndianStringEncoding = 0x98000100, /* NSUTF32StringEncoding encoding with explicit endianness specified */
- NSUTF32LittleEndianStringEncoding = 0x9c000100 /* NSUTF32StringEncoding encoding with explicit endianness specified */
- };
- typedef NSUInteger NSStringEncoding;