解码 base64String 值 returns nil
Decoding base64String value returns nil
我正在尝试从 base64String 获取 UIImage,但我遇到了一个有趣的问题。即使编码字符串已满,对其进行解码 returns nil.
let base64String = imageFilePath as! String
print(base64String) // returns encoded value
let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))
print(decodedData) // returns nil
编辑:它是这样的
24wKiOQeetKPWmsx3AjtQMe+cDApoOTinCTOOKUsF5osIbtK800E5yKRySeeKFf ZQA5m79KkjYHr1qMupHWkbJGVoGTE0majXceT0qQkAUCGEUo5GKYOT81S5AOKEND
WUg0wg9BUu4dKibAOKYCAHFKOCCaQ9cGkBzQApbk5o3D7p/A0mRS9e1AD1BPSnCN
RzQnA5pjHPFMdhWcgbVHFSggr0/
您可以使用这些函数对 Base64 字符串进行编码和解码
static func encodeBase64(input: String)->String{
let utf8str = input.dataUsingEncoding(NSUTF8StringEncoding)
return utf8str!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
}
static func decodeBase64(input: String)->String{
let base64Decoded = NSData(base64EncodedString: input, options: NSDataBase64DecodingOptions(rawValue: 0))
.map({ NSString(data: [=10=], encoding: NSUTF8StringEncoding) })
return base64Decoded as! String
}
可能您的 imageFilePath
不是 Base64 字符串。打印它并检查它是否包含除字母数字字符和 +
和 /
符号之外的任何内容。
您可以试试这个代码:
let decodedData = NSData(base64EncodedString: base64String, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
我正在尝试从 base64String 获取 UIImage,但我遇到了一个有趣的问题。即使编码字符串已满,对其进行解码 returns nil.
let base64String = imageFilePath as! String
print(base64String) // returns encoded value
let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))
print(decodedData) // returns nil
编辑:它是这样的
24wKiOQeetKPWmsx3AjtQMe+cDApoOTinCTOOKUsF5osIbtK800E5yKRySeeKFf ZQA5m79KkjYHr1qMupHWkbJGVoGTE0majXceT0qQkAUCGEUo5GKYOT81S5AOKEND WUg0wg9BUu4dKibAOKYCAHFKOCCaQ9cGkBzQApbk5o3D7p/A0mRS9e1AD1BPSnCN RzQnA5pjHPFMdhWcgbVHFSggr0/
您可以使用这些函数对 Base64 字符串进行编码和解码
static func encodeBase64(input: String)->String{
let utf8str = input.dataUsingEncoding(NSUTF8StringEncoding)
return utf8str!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
}
static func decodeBase64(input: String)->String{
let base64Decoded = NSData(base64EncodedString: input, options: NSDataBase64DecodingOptions(rawValue: 0))
.map({ NSString(data: [=10=], encoding: NSUTF8StringEncoding) })
return base64Decoded as! String
}
可能您的 imageFilePath
不是 Base64 字符串。打印它并检查它是否包含除字母数字字符和 +
和 /
符号之外的任何内容。
您可以试试这个代码:
let decodedData = NSData(base64EncodedString: base64String, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters)