【问题标题】:Base64 string to UIImage IssueBase64 字符串到 UIImage 问题
【发布时间】:2017-11-08 14:23:14
【问题描述】:

免责声明:这里有很多关于 SO 的问题。我试图直接遵循这些问题的解决方案,但没有成功。我已尽量避免发布此副本。

你好,

我在将 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,我无法创建图像。

我感觉可能是我正在使用的数据,但在线转换工具似乎使用它没有问题。请参阅下面的数据示例和我用于转换的网站。

String example/ Online converter/ Actual image

【问题讨论】:

    标签: swift uiimage base64 decode decoding


    【解决方案1】:

    你的 Base64 字符串

    %2F9j%2F4AAQSk...Z2uHi4%2BTl5ufo6...jtTGf%2FZ
    

    包含“percent-encoded 十六进制序列”, 例如“/”的“%2F”或“+”的“%2B”。

    这是URL applications 中使用的变体,但Data 不会自动处理它。因此,您必须删除 百分比编码优先:

    if let percentDecoded = base64String.removingPercentEncoding,
        let decodedData = Data(base64Encoded: percentDecoded) {
        // ...
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多