将NSString转换为NSData,反之亦然

时间:2011-07-19 10:28:37

标签: iphone nsstring nsdata data-conversion

我在尝试将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 个答案:

答案 0 :(得分:28)

NSStringNSData

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

NSDataNSString

NSString* newStr = [[NSString alloc] initWithData:theData
                                         encoding:NSUTF8StringEncoding];

答案 1 :(得分:2)

请注意NSASCIIStringEncodingNSUTF8StringEncoding需要匹配字符串中的字符。