快速从 Base64 格式解码
Posted
技术标签:
【中文标题】快速从 Base64 格式解码【英文标题】:Decode from Base64 format in swift 【发布时间】:2019-06-26 08:34:15 【问题描述】:我正在尝试解码加密密钥。我尝试在线解码我得到以下结果 它工作正常。
KEY : oPvvNMsiOd//bheeboamB65AXi8r+go9NLz2rTPEJRU=
decode values : 4"9nn@^/+
=43%
当我尝试这段代码时,它出现了致命错误
let base64Encoded = "oPvvNMsiOd//bheeboamB65AXi8r+go9NLz2rTPEJRU="
let decodedData = Data(base64Encoded: base64Encoded)!
let decodedString = String(data: decodedData, encoding: .utf8)!
print(decodedString)
我尝试了很多方法,我必须从base64解码。
【问题讨论】:
有什么问题?它不起作用,比如错误的值或只是不会编译或其他东西? @MohmmadS 在我尝试时遇到致命错误我需要得到这个 4"9nn@^/+ 解码后的数据不是有效的UTF-8字符串... @Martin 感谢重播,我怎样才能转换成字符串 当我尝试上网时,我得到了结果 【参考方案1】:最后我找到了解决我的问题的方法。
extension Character
var isAscii: Bool
return unicodeScalars.allSatisfy $0.isASCII
extension RangeReplaceableCollection where Self: StringProtocol
var asciiPrintable: Self
return filter $0.isAscii
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
let base64Encoded = "oPvvNMsiOd//bheeboamB65AXi8r+go9NLz2rTPEJRU="
let decodedData = Data(base64Encoded: base64Encoded, options: [])
var decodedString: String? = nil
if let decodedData = decodedData
decodedString = String(data: decodedData, encoding: .ascii)
print(decodedString)
let ascivalue = decodedString!.asciiPrintable
print(ascivalue)
Output:
Optional(" ûï4Ë\"9ßÿn\u17n¦\u07®@^/+ú\n=4¼ö3Ä%\u15")
4"9nn@^/+
=43%
【讨论】:
以上是关于快速从 Base64 格式解码的主要内容,如果未能解决你的问题,请参考以下文章