Я хотел бы преобразовать ГБ в кодировке char * в NSString *:
char *
NSString *
char *str = ... size_t len = ... NSString *s = [[NSString alloc] initWithBytes:str length:len encoding:???];
encoding:NSUTF8StringEncoding доступно. Интересно, есть ли здесь предопределенная кодировка для китайских иероглифов? аналогично kCFStringEncodingGB_2312_80 , определенному в CFStringEncoding.
encoding:NSUTF8StringEncoding
CFStringEncoding
Вы можете использовать строковые кодировки CF с NSString; от Документы Apple :
Дополнительные кодировки определены в Руководство по программированию String для Core Foundation (см. CFStringEncodingExt.h); эти кодировки можно использовать с NSString, сначала передав кодировку Core Foundation в функцию CFStringConvertEncodingToNSStringEncoding.
CFStringConvertEncodingToNSStringEncoding
Поскольку NSString и CFString являются бесплатными мостовыми соединениями, вы можете просто привести один к другому:
NSString *str = (__bridge __strong NSString *) CFStringCreateWithBytes(NULL, str, length, kCFStringEncodingGB_2312_80, NO);