我在尝试将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
时无效?
答案 0 :(得分:28)
NSString
至NSData
:
NSString* str= @"teststring";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSData
至NSString
:
NSString* newStr = [[NSString alloc] initWithData:theData
encoding:NSUTF8StringEncoding];
答案 1 :(得分:2)
请注意NSASCIIStringEncoding
和NSUTF8StringEncoding
需要匹配字符串中的字符。