Преобразование NSString в NSData и наоборот - PullRequest
11 голосов
/ 19 июля 2011

У меня возникла проблема при попытке преобразовать NSString в NSData и наоборот. Я пытаюсь сохранить зашифрованную строку в моей базе данных. Для этого я использую алгоритм AES. Теперь я зашифрован NSData и преобразую его в NSString, используя следующее:

// Not woking
NSString *strTemp = [[NSString alloc] initWithData:encData encoding:NSUTF8StringEncoding]; 

// Working
NSString *strTemp = [[NSString alloc] initWithData:encData encoding:NSASCIIStringEncoding];

Почему NSData не конвертирует при использовании NSUTF8StringEncoding. Таким же образом, когда я пытаюсь преобразовать строку, полученную NSASCIIStringEncoding, используя:

// Not working
[strTemp dataUsingEncoding:NSASCIIStringEncoding];

// Working
[strTemp dataUsingEncoding:NSUTF8StringEncoding];

Почему NSASCIIStringEncoding не работает при преобразовании NSString в NSData?

Ответы [ 2 ]

28 голосов
/ 19 июля 2011

NSString до NSData:

NSString* str= @"teststring";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];

NSData до NSString:

NSString* newStr = [[NSString alloc] initWithData:theData
                                         encoding:NSUTF8StringEncoding];
2 голосов
/ 16 сентября 2011

Обратите внимание, что NSASCIIStringEncoding и NSUTF8StringEncoding должны соответствовать символам в строке.

...