解码 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)