解码base64String值返回nil

时间:2016-04-19 13:36:53

标签: ios swift base64 nsdata decoding

我试图从base64String获取UIImage,但我面临一个有趣的问题。即使编码的字符串已满,解码也会返回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 /

3 个答案:

答案 0 :(得分:2)

您可以尝试以下代码:

let decodedData = NSData(base64EncodedString: base64String, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters)

答案 1 :(得分:0)

您可以使用这些函数对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: $0, encoding: NSUTF8StringEncoding) })

        return base64Decoded as! String

    }

答案 2 :(得分:0)

您的imageFilePath可能不是Base64字符串。打印并检查它是否包含除字母数字字符和+/符号以外的任何内容。