web-dev-qa-db-ja.com

NSStringをNSDataに、またはその逆に変換する。

NSStringNSDataに、またはその逆に変換しようとしているときに問題が発生しました。暗号化された文字列をデータベースに保存しようとしています。そのために私はAESアルゴリズムを使用しています。今私がしていることは、暗号化されたNSDataを取得し、以下を使用してこれをNSStringに変換しています。

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

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

NSUTF8StringEncodingの使用中にNSDataが変換されない理由。 NSASCIIStringEncodingで取得した文字列を次のように変換しようとした場合も同じです。

// Not working
[strTemp dataUsingEncoding:NSASCIIStringEncoding];

// Working
[strTemp dataUsingEncoding:NSUTF8StringEncoding];

NSASCIIStringEncodingNSStringに変換しているときに、NSDataが機能しないのはなぜですか?

11
Kapil Choubisa

NSStringからNSData

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

NSDataからNSString

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

NSASCIIStringEncodingNSUTF8StringEncoding文字列内の文字と一致する必要があります。

2
zaph