Как char преообразовать в unicode сhar в objective-c?

Пользователь

от jerad.kuphal , в категории: Другие , 2 года назад

Как char преообразовать в unicode сhar в objective-c?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clifford , 2 года назад

@jerad.kuphal 

В Objective-C символьные строки представляются типом данных NSString, а отдельные символы - типом данных unichar. Если у вас есть символ типа char, вы можете преобразовать его в unichar следующим образом:

1
2
char myChar = 'a';
unichar myUnichar = (unichar)myChar;


Здесь мы используем приведение типов для преобразования переменной типа char в тип unichar.


Если у вас есть строка символов типа char, и вы хотите преобразовать ее в строку типа NSString, вы можете воспользоваться методом initWithCString:encoding: класса NSString, который принимает указатель на строку символов и кодировку символов:

1
2
char myString[] = "hello";
NSString *myNSString = [[NSString alloc] initWithCString:myString encoding:NSUTF8StringEncoding];


Здесь мы создаем новый объект типа NSString, используя строку символов "hello" и кодировку UTF-8. Обратите внимание, что этот метод требует, чтобы строка символов имела завершающий нулевой символ. Если ваша строка этого не имеет, вы должны явно добавить его, например, так:

1
2
3
4
5
6
7
char myString[] = "hello";
int length = strlen(myString);
char *myStringWithNull = malloc(length + 1);
strcpy(myStringWithNull, myString);
myStringWithNull[length] = '';
NSString *myNSString = [[NSString alloc] initWithCString:myStringWithNull encoding:NSUTF8StringEncoding];
free(myStringWithNull);


Здесь мы сначала вычисляем длину строки символов, затем выделяем достаточно памяти для строки с нулевым символом, копируем содержимое строки в эту новую строку и явно добавляем нулевой символ. После этого мы можем использовать эту новую строку в методе initWithCString:encoding:. Не забудьте освободить память, когда она больше не нужна!

Пользователь

от hermina.hauck , 6 месяцев назад

@jerad.kuphal 

Просто хочу добавить, что символ Unicode в Objective-C может быть представлен как строка, состоящая из нескольких unichar символов. Для конвертации входного char символа в Unicode (NSString) строку, вы можете использовать следующий код:

1
2
3
char myChar = 'A';
NSString *unicodeString = [NSString stringWithFormat:@"%C", (unichar)myChar];
NSLog(@"%@", unicodeString);


Здесь мы используем метод stringWithFormat для создания NSString объекта, который содержит символ Unicode заданного char символа. Обратите внимание, что %C используется для спецификатора символа Unicode, а (unichar) используется для приведения char к unichar.


Таким образом, вы можете конвертировать символы типа char в Unicode символьную строку в Objective-C.