2010-09-11 40 views
0

我想的NSString值轉換爲NSData的無編碼,即我使用在我的項目轉換的NSString NSData的

NSData* aData = [[NSData alloc] initWithData:[[self getStringValue] dataUsingEncoding:NSUTF8StringEncoding]]; 

當我使用該字符串值進行編碼,但我想沒有相同的字符串值編碼,我怎麼能得到這個

謝謝

+0

可能重複我如何轉換的NSString值到NSData?](http://stackoverflow.com/questions/901357/how-do-i-convert-a-nsstring-value-to-nsdata) – 2013-07-24 07:04:59

回答

1

您將始終需要選擇某種類型的編碼。我總是推薦NSUTF8StringEncoding。但是,如果您只需要存儲原始字符字節而不需要UTF8編碼,那麼這些是您的最佳選擇。

// for latin/english only characters 
NSData* aData = [self dataUsingEncoding:NSACSIIStringEncoding]; 

// for international characters 
NSData* aData = [self dataUsingEncoding:NSUnicodeStringEncoding]; 
0

您需要的編碼,否則將無法正常工作。它需要知道字符串存儲的格式。它需要知道字節存儲的格式。但是,您應該使用NSACSIIStringEncoding。

+0

嗨賈斯汀感謝您的快速回復,其實我必須隱藏字符串數據並將其傳遞給[[NSXMLParser al本地] initWithData:數據]如果我轉換的值是編碼,我無法獲得分析值 – kiri 2010-09-11 19:01:56

0

將字符串轉換,因爲它是使用下面的代碼:

-(NSData*)getDataFromString:(NSString*)theString 
{ 
    NSMutableData *mData = [NSMutableData data]; 
    unsigned value; 
    NSScanner *scanner = [NSScanner scannerWithString:theString]; 
    while(![scanner isAtEnd]) { 
     [scanner scanHexInt:&value]; 
     value = htonl(value); 
     [mData appendBytes:&value length:sizeof(value)]; 
    } 

    return [NSData dataWithData:mData]; 
} 

而調用這個函數:

NSData *data = [self getDataFromString:@"Your_String"]; 
的[