gpt4 book ai didi

iphone - 将 NSString 转换为 NSData 而不更改数据

转载 作者:行者123 更新时间:2023-11-29 04:56:48 25 4
gpt4 key购买 nike

我有一个包含一系列十六进制值的 NSString,例如:

6173736e 616d65a2 15165570 6f696e74 584e534f 626a6563

但是,我需要将完全相同的数据放在 NSData 对象中。我尝试过做以下事情:

mydata = [mystring dataUsingEncoding:NSASCIIStringEncoding]; //have tried all kind of encoding options

无论我做什么,mydata 永远不会包含与 NSString 相同的值,而这正是我所需要的。

非常感谢任何帮助!谢谢。

最佳答案

您似乎误解了该方法的作用。它不会解析字符串以获取数字的十六进制表示形式;它只是创建一个数据对象,表示具有特定字节编码的字符串。因此,在您的情况下,数据将包含值为 54(“6”的 ASCII 值)、49(“1”)、55(“7”)、51(“3”)、55(代表“7”)、51(代表“3”)、54(代表“6”)、101(代表“e”)等。

如果你想解析十六进制字符串,可以使用 NSScanner 来扫描十六进制值。

这是您想要的基本形式:

NSScanner *scanner = [NSScanner scannerWithString:yourHexString];
NSMutableData *data = [NSMutableData data];
while (![scanner isAtEnd]) {
unsigned value;
if ([scanner scanHexInt:&value]) {
[data appendBytes:&value length:sizeof(value)];
} else {
NSLog(@"Invalid value in scanned string");
}
}

(警告:在浏览器中编写,尚未测试,如果您尝试用它运行核 react 堆等,可能会导致崩溃。)

关于iphone - 将 NSString 转换为 NSData 而不更改数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com