我怎样才能将NSdata转换为十六进制字符串? [英] How can i convert NSdata to hex string?
本文介绍了我怎样才能将NSdata转换为十六进制字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试着将NSData转换为十六进制字符串值的代码,但都是错误的?
这里result是我的NSdata
我需要一个十六进制字符串作为输出,但iam没有得到那个
NSUInteger dataLength = [结果长度] ;
NSLog(@%d,dataLength);
NSMutableString * string = [NSMutableString stringWithCapacity:dataLength * 2];
const unsigned char * dataBytes = [结果字节];
for(NSInteger idx = 0; idx< dataLength; ++ idx){[string appendFormat:@%02x,dataBytes [idx]];
}
NSLog(@%@,string);
我该如何转换这个
更新:结果数据包含加密字符串。我希望将其转换为十六进制值。
解决方案
这是一个类别,这样做。这只是给你十六进制数据的所有字符。
@implementation NSData(NSData_Conversion)
#pragma mark - 字符串转换
- (NSString *)十六进制字符串
{
/ *返回NSData的十六进制字符串。如果数据为空,则为空字符串。 * /
const unsigned char * dataBuffer =(const unsigned char *)[self bytes];
if(!dataBuffer)
{
return [NSString string];
}
NSUInteger dataLength = [self length];
NSMutableString * hexString = [NSMutableString stringWithCapacity:(dataLength * 2)];
for(int i = 0; i< dataLength; ++ i)
{
[hexString appendFormat:@%02x,(unsigned int)dataBuffer [i ]];
}
return [NSString stringWithString:hexString];
}
i tried following codes for converting a NSData to hex string values but all are wrong?
here "result" is my NSdata
i need a hex string as output but iam not getting that
NSUInteger dataLength = [result length];
NSLog(@"%d",dataLength);
NSMutableString *string = [NSMutableString stringWithCapacity:dataLength*2];
const unsigned char *dataBytes = [result bytes];
for (NSInteger idx = 0; idx < dataLength; ++idx) { [string appendFormat:@"%02x", dataBytes[idx]];
}
NSLog(@"%@",string);
how can i convert this please
UPDATES: the result data contains encrypted string .i want to convert this to hex values
解决方案
Here is a category that I have for doing this. This just gives you all the characters of the data in hex. No line break or anything.
@implementation NSData (NSData_Conversion)
#pragma mark - String Conversion
- (NSString *)hexadecimalString
{
/* Returns hexadecimal string of NSData. Empty string if data is empty. */
const unsigned char *dataBuffer = (const unsigned char *)[self bytes];
if (!dataBuffer)
{
return [NSString string];
}
NSUInteger dataLength = [self length];
NSMutableString *hexString = [NSMutableString stringWithCapacity:(dataLength * 2)];
for (int i = 0; i < dataLength; ++i)
{
[hexString appendFormat:@"%02x", (unsigned int)dataBuffer[i]];
}
return [NSString stringWithString:hexString];
}
这篇关于我怎样才能将NSdata转换为十六进制字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文