您好,
我在将一个base64编码的字符串解码为Swift中的图像时遇到问题。我尝试过一些不同的数据集,但它们似乎都没有正确解码,因为结果总是nil
。
经过相当多的研究后,我得出结论,需要将字符串解码为Data
,从该数据创建图像并为其设置UIImageView
的图像。很简单,对吧?
let base64String: String = ...
let decodedData: Data = Data(base64Encoded: base64String, options: [])
let decodedImage: UIImage = UIImage(data: decodedData)
myImageView.image = decodedImage
然而,经过我的各种尝试后,数据最终都是nil
,我无法创建图像。
我感觉它可能是我正在使用的数据,但在线转换工具似乎没有使用它的问题。请参阅下面的我的数据样本和我用于转换的网站。
答案 0 :(得分:2)
您的Base64字符串
%2F9j%2F4AAQSk...Z2uHi4%2BTl5ufo6...jtTGf%2FZ
包含" percent-encoded十六进制序列", 例如"%2F" for" /",或"%2B" for" +"。
这是URL applications中使用的变体,但Data
不会自动处理它。因此你必须删除
百分比编码首先:
if let percentDecoded = base64String.removingPercentEncoding,
let decodedData = Data(base64Encoded: percentDecoded) {
// ...
}