Преобразование NSString в NSData и наоборот
У меня возникает проблема при попытке конвертировать 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
?
Ответы
Ответ 1
NSString
до NSData
:
NSString* str= @"teststring";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSData
до NSString
:
NSString* newStr = [[NSString alloc] initWithData:theData
encoding:NSUTF8StringEncoding];
Ответ 2
Обратите внимание, что NSASCIIStringEncoding
и NSUTF8StringEncoding
должны соответствовать символам в строке.