ios - 将 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)
}
解决方案
这有效:
let string = "NWQwMDU2ZjhiZjRjYmI2M2MxZTI0NzQzNjAxMjMxMzAyMDh8NjAxMjMxMzAyMDh8NWQwMDU2Zjhi\nZjRjYmI2M2MxZTI0NzQzfDYwMTIzMTMwMjA4fG5hdmlnYXRpb25UZXN0MDA1fDIwMTktMDYtMjEg\nMDk6MzQ6MDB8MA==\n"
let joined = string.replacingOccurrences(of: "\n", with: "")
if let data = Data(base64Encoded: joined) {
String(data: data, encoding: .utf8)
}
推荐阅读
- javascript - JavaScript 鼠标位置记录比预期的要长 - 是什么导致延迟?
- python - Can matplotlib and readchar work simultaneously?
- node.js - 谷歌助手中的 DialogFlow 上下文始终为空
- oracle - 一次查询中的 Oracle 删除/更新
- node.js - AWS Lambda NodeJS 调用 SQL Server 不返回数据和错误
- python-3.x - 如何从字节数组中提取 2-9 位数组?
- java - 如何使用带有 List 参数的泛型函数
- apache-spark - Spark SQL 中 Group By 子句的底层实现
- javascript - Unable to read properties of a property containing the object
- javascript - React Context vs Javascript window