在我的项目中我想将NSString值转换为NSdata而不进行编码,即我正在使用
NSData* aData = [[NSData alloc] initWithData:[[self getStringValue] dataUsingEncoding:NSUTF8StringEncoding]];
当我使用它时,字符串值被编码但我想要相同的字符串值而不编码,我怎么能得到这个
谢谢
答案 0 :(得分:1)
您始终需要选择某种类型的编码。我总是推荐NSUTF8StringEncoding。但是如果你只需要存储的原始字符字节而不是UTF8编码,这些是你最好的选择。
// for latin/english only characters
NSData* aData = [self dataUsingEncoding:NSACSIIStringEncoding];
// for international characters
NSData* aData = [self dataUsingEncoding:NSUnicodeStringEncoding];
答案 1 :(得分:0)
您需要编码,否则无法使用。它需要知道字符串存储的格式。它需要知道存储字节的格式。但是你可能应该使用NSACSIIStringEncoding。
答案 2 :(得分: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"];