0

我有一个十六进制数

535443326663315634524877795678586b536854535530342f44526a795744716133353942704359697a6b736e446953677171555473

我想将此数字转换为 ASCII 格式,如下所示

STC2fc1V4RHwyVxXkShTSU04/DRjyWDqa359BpCYizksnDiSgqqUTsYUOcHKHNMJOdqR1/TQywpD9a9xhri

我在这里看到了解决方案,但它们都对我没有用 NSString 包含十六进制转换为 ascii 等价物

我在这里检查过,但他们给出了不同的结果。任何帮助

4

2 回答 2

1

这完美地工作

- (NSString *)stringFromHexString:(NSString *)hexString {


    // The hex codes should all be two characters.
    if (([hexString length] % 2) != 0)
        return nil;

    NSMutableString *string = [NSMutableString string];

    for (NSInteger i = 0; i < [hexString length]; i += 2) {

        NSString *hex = [hexString substringWithRange:NSMakeRange(i, 2)];
        NSInteger decimalValue = 0;
        sscanf([hex UTF8String], "%x", &decimalValue);
        [string appendFormat:@"%c", decimalValue];
        NSLog(@"string--%@",string);
    }
    _hexString1=string;

    NSLog(@"string ---%@",_hexString1);
    return string;
}
于 2013-09-16T12:53:08.667 回答
0

如果您开始使用,NSData *您可以通过以下方式获取 ASCII 字符串:

NSData *someData = [NSData dataWithHexString:@"ABC123"];

NSString *asciiString = [[NSString alloc] initWithData: someData encoding:NSASCIIStringEncoding];
于 2020-11-11T00:30:02.900 回答