Получить Unicode-точку NSString и поместить ее в другую NSString - PullRequest
4 голосов
/ 23 марта 2012

Какой самый простой способ получить значение Unicode из NSString?Например,

NSString *str = "A";
NSString *hex;

Теперь я хочу установить для значения hex значение Unicode, равное str (т. Е. 0041) ... Как мне это сделать?

Ответы [ 2 ]

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

Тип unichar определен как 16-битное значение Юникода (например, как косвенно задокументировано в описании спецификатора% C ), и вы можете получить unichar иззаданную позицию в NSString, используя characterAtIndex:, или используйте getCharacters:range:, если вы хотите заполнить массив C Unichars из NSString быстрее, чем запросив иходин за другим.

NSUTF32StringEncoding также является допустимым строковым кодированием, как и пара вариантов, специфичных для порядка байтов, на случай, если вы хотите быть абсолютно будущим.Вы получите массив C из тех, кто использует гораздо более длинный getBytes:maxLength:usedLength:encoding:options:range:remainingRange:.

РЕДАКТИРОВАТЬ: так, например,

NSString *str = @"A";

NSLog(@"16-bit unicode values are:");
for(int index = 0; index < [str length]; index++)
    NSLog(@"%04x", [str characterAtIndex:index]);
3 голосов
/ 23 марта 2012

Вы можете использовать

NSData * u = [str dataUsingEncoding:NSUnicodeStringEncoding];
NSString *hex = [u description];

Вы можете заменить NSUnicodeStringEncoding на NSUTF8StringEncoding, NSUTF16StringEncoding (так же, как NSUnicodeStringEncoding) или NSUTF32StringEncoding, или многие другие значения.

Здесь 1007 *1007* 1007* для более

...