gpt4 book ai didi

ios - 在 swift/objective-c 中将任意二进制数据编码/解码为字符串

转载 作者:搜寻专家 更新时间:2023-11-01 06:49:12 24 4
gpt4 key购买 nike

我需要将任意 NSData 对象编码/解码为 String/NSString。这是我的编码:

    var avatar64 = self.avatar.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.fromRaw(0)!);
let avatarData = NSData(base64EncodedString: avatar64, options: NSDataBase64DecodingOptions.fromRaw(0)!);
let avatar = NSString(data: avatarData, encoding: NSUTF8StringEncoding);

但是 avatar 是 nil。我做错了什么?

最佳答案

您的第一步已经在 self.avatar 中创建了一个 Base64 编码的数据字符串:

var avatar64 = self.avatar.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.fromRaw(0)!);

您的第二步再次解码 Base64 字符串,以便 avatarData 包含相同的内容二进制数据作为您的原始 self.avatar:

let avatarData = NSData(base64EncodedString: avatar64, options: NSDataBase64DecodingOptions.fromRaw(0)!);

最后,您的第三步尝试从原始(二进制)数据创建一个字符串:

let avatar = NSString(data: avatarData, encoding: NSUTF8StringEncoding);

这失败了,因为数据不是有效的 UTF-8 序列。

简而言之:只需删除第三行和第二行。

关于ios - 在 swift/objective-c 中将任意二进制数据编码/解码为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24678704/

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