首页 > 解决方案 > 将 Base64string 转换为字符串的问题

问题描述

我正在尝试将 base64 字符串转换为字符串格式,但我总是得到零。My base64 string is "NWQwMDU2ZjhiZjRjYmI2M2MxZTI0NzQzNjAxMjMxMzAyMDh8NjAxMjMxMzAyMDh8NWQwMDU2Zjhi\nZjRjYmI2M2MxZTI0NzQzfDYwMTIzMTMwMjA4fG5hdmlnYXRpb25UZXN0MDA1fDIwMTktMDYtMjEg\nMDk6MzQ6MDB8MA==\n"

解码后,假设看起来像这样“5d0056f8bf4cbb63c1e2474360123130208|60123130208|5d0056f8bэ͌Ŕ٥ѥQشĂs3C”。这是我的代码事件,我试图从字符串中删除“=\n”但没有成功。

 func qrScanningSucceededWithCode(_ str: String?) {
    scanTicketView.qrData = QRData(codeString: str)
    let charsToRemove: Set<Character> = Set("=\n")
    let newNumberCharacters = String(str!.filter { !charsToRemove.contains($0) })
    let decodedString = String(data: Data(base64Encoded: newNumberCharacters)!, encoding: .utf8)!
    print(decodedString)
}

标签: iosswift

解决方案


这有效:

let string = "NWQwMDU2ZjhiZjRjYmI2M2MxZTI0NzQzNjAxMjMxMzAyMDh8NjAxMjMxMzAyMDh8NWQwMDU2Zjhi\nZjRjYmI2M2MxZTI0NzQzfDYwMTIzMTMwMjA4fG5hdmlnYXRpb25UZXN0MDA1fDIwMTktMDYtMjEg\nMDk6MzQ6MDB8MA==\n"

let joined = string.replacingOccurrences(of: "\n", with: "")

if let data = Data(base64Encoded: joined) {
    String(data: data, encoding: .utf8)
}

推荐阅读