如何快速将字节数组转换为 base64 字符串?
Posted
技术标签:
【中文标题】如何快速将字节数组转换为 base64 字符串?【英文标题】:How can I convert byte array to base64 string in swift? 【发布时间】:2016-04-14 02:28:35 【问题描述】:当我从我的 API 中获取我的 JSON 时,这就是它的样子
data:[
100,
80,
105,
99,
etc
]
如何获取这个数组并将其转回 base64 字符串,然后是 NSData,最后是 UIImage。 这是我到目前为止所拥有的。
let byteArray = todo["image"]["data"].arrayObject
var data = NSData(bytes: byteArray!, length: byteArray!.count)
var image = UIImage(data: data)
打印数据时,它打印正常,但返回 nil 为图像。
【问题讨论】:
这是来自您的 API 的真实 JSON 样本吗? 它前面有几个字段,但我需要弄清楚的是如何将字节数据数组转换为 NSData 假设这些是十进制值,这看起来不像 base64 数据。 这是我的 blob 返回数据的方式 【参考方案1】:您是否尝试过遍历数组并从其元素构建字符串,使用 base64 编码/解码 api 从字符串返回到 NSData?类似的东西(我是用 iPad 写的,所以无法查看)。
var encodedString=""
for smallString in byteArray
encodedString += String(smallString)
let data = NSData(base64EncodedString: base64Encoded, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
var image = UIImage(data: data)
【讨论】:
编码字符串是什么意思。我所拥有的只是一个带有字节的数据数组。这就是我的 API 返回给我的内容 你数组的内容不是base 64编码图像的字符串表示吗? 没有我的 API 将编码的 base 64 字符串存储为 BLOB,但 blob 将数据作为字节数组返回 例如这是一张base64编码的图像:iVBORw0KGgoAA 这是一个C字节数组 byte[] bytes = 3, 10, 8, 25 ;在这里查看***.com/questions/11860830/byte-array-to-nsdata【参考方案2】: let byteArray = todo["image"]["data"].arrayObject
let string = String(bytes: byteArray, encoding: .utf8)
let encodedImageData = string
let imageData = NSData(base64Encoded: encodedImageData!)
let image = UIImage(data: imageData! as Data)
【讨论】:
以上是关于如何快速将字节数组转换为 base64 字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何将图像的字节数组转换为表示 jpg 的 base64 编码字符串
如何在 ios 中将 Base64 编码的 NSString 转换为字节数组(Java)?