Китайский char * преобразование в NSString на iOS? - PullRequest
1 голос
/ 23 марта 2012

Я хотел бы преобразовать ГБ в кодировке char * в NSString *:

char *str = ...
size_t len = ...

NSString *s = [[NSString alloc] initWithBytes:str length:len encoding:???];

encoding:NSUTF8StringEncoding доступно. Интересно, есть ли здесь предопределенная кодировка для китайских иероглифов? аналогично kCFStringEncodingGB_2312_80 , определенному в CFStringEncoding.

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Вы можете использовать строковые кодировки CF с NSString; от Документы Apple :

Дополнительные кодировки определены в Руководство по программированию String для Core Foundation (см. CFStringEncodingExt.h); эти кодировки можно использовать с NSString, сначала передав кодировку Core Foundation в функцию CFStringConvertEncodingToNSStringEncoding.

0 голосов
/ 23 марта 2012

Поскольку NSString и CFString являются бесплатными мостовыми соединениями, вы можете просто привести один к другому:

NSString *str = (__bridge __strong NSString *) CFStringCreateWithBytes(NULL, str, length, kCFStringEncodingGB_2312_80, NO);
...