将 Base64string 转换为字符串时出现问题



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

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

 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)
}

这有效:

let string = "NWQwMDU2ZjhiZjRjYmI2M2MxZTI0NzQzNjAxMjMxMzAyMDh8NjAxMjMxMzAyMDh8NWQwMDU2ZjhinZjRjYmI2M2MxZTI0NzQzfDYwMTIzMTMwMjA4fG5hdmlnYXRpb25UZXN0MDA1fDIwMTktMDYtMjEgnMDk6MzQ6MDB8MA==n"
let joined = string.replacingOccurrences(of: "n", with: "")
if let data = Data(base64Encoded: joined) {
    String(data: data, encoding: .utf8)
}

最新更新