【发布时间】:2016-12-07 11:14:21
【问题描述】:
我正在尝试从 base64 解码以下字符串而没有任何退出。它总是返回零。我试图将 NSDataBase64DecodingOptions 更改为 IgnoreUnknowCharanters 但它也不起作用。我还尝试删除填充,就像这个答案说 swift base64 decoding returns nil 但我的字符串的长度可以被 4 整除,所以它不起作用。
字符串
PY5ehymWfQKExWxPyOImGiQkxNjyuBREmOXtQdePVpuH9PFzizaO+WTuM1sLouTQPz5UO7csloC9GjOFqkq4POmlB9d3mMJGLB2pVCNs8t9EejOcjV4fRHaITkmfMfVbizCnTvHGBwLWXjLc7gwyhu2+S9qw0NXc5jw6EdEk+zuesrdwLgqws0hDqFSoVw57+CnvUmgXwtNfKP4p64mJ9inH/0xAMarCc5N4Wjz/zmlTyd2PoDFUC/iLdZ7csau7X2M=
选项 1
if let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters),
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding) {
print(decodedString) // foo
}
选项 2
if let decodedData = NSData(base64EncodedString: pnpData, options: NSDataBase64DecodingOptions.init(rawValue: 0)),
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding) {
print(decodedString) // foo
}
希望你能帮助我。谢谢!!
【问题讨论】:
-
哪个位返回 nil、数据或从数据创建字符串?你的 base64 字符串是从哪里来的?
-
我假设 Base64 解码有效,但解码后的数据不代表有效的 UTF-8 序列,因此
NSString(data: decodedData ...)失败。你期待什么结果? -
@MartinR 它被认为是一个加密字符串,所以在解码后我必须使用 AES 来解密它。
-
@Wain decodedData 有数据但 decodedString 为 nil
-
那么不要将数据转换为字符串。 AES 解密 数据。