【问题标题】:Decode base64 string in Swift [duplicate]在Swift中解码base64字符串[重复]
【发布时间】:2019-12-09 19:24:39
【问题描述】:

我有以下 base64 编码字符串:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjdEODU3RjE3RjMwQTBBNzY4OUQ4RTFDMTI0RjRFMzk1MEU2REIyQ0YiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmWVZfRl9NS0NuYUoyT0hCSlBUamxRNXRzczgifQ

我很容易在网上解码,例如here

但是,当我尝试快速解码时,我没有成功,我使用了:

func fromBase64() -> String? {
    guard let data = Data(base64Encoded: self) else {
      return nil
    }

    return String(data: data, encoding: .utf8)
  }

但我返回零。

【问题讨论】:

    标签: swift


    【解决方案1】:

    您的字符串在 base64 输出末尾缺少 = 填充字符,以使字符串长度可被 4 整除。尝试使用

    eyJhbGciOiJSUzI1NiIsImtpZCI6IjdEODU3RjE3RjMwQTBBNzY4OUQ4RTFDMTI0RjRFMzk1MEU2REIyQ0YiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmWVZfRl9NS0NuYUoyT0hCSlBUamxRNXRzczgifQ==
    

    【讨论】:

    • that usually occur at the end.. 这有点误导。由于他的编码字符串不能被 4 整除,因此他需要 2 个== 才能使其正确。
    • 你说得对,我已经更新了我的答案
    猜你喜欢
    • 2021-07-24
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多