在 Swift 3 中将字符串转换为 base64

Convert string to base64 in Swift 3

let strsize = 10_000_000
let tries = 100
var longstring:String = "a"

for i in 1...strsize {
longstring += "a"
}

for i in 1..<2 {
let basestring = NSData(base64EncodedString: longstring, options: .IgnoreUnknownCharacters)
print(basestring)
}

正在命令提示符中编写代码。我得到的 Swift 3 的正确代码是什么 use of unresolved identifier NSData 。大多数关于将字符串编码为 base64 的教程都不起作用。

这适用于 Linux 或 Mac? http://studyswift.blogspot.sg/2016/03/convert-nsdatauint8-to-base64-in-swift.html

改用这个:

let longstring = "test123"
if let data = (longstring).data(using: String.Encoding.utf8) {
    let base64 = data.base64EncodedString(options: Data.Base64EncodingOptions(rawValue: 0))
    print(base64)// dGVzdDEyMw==\n
}

在 Swift 4.2 和 Xcode 10.1

//Base64 encoding
let data = combinedString.data(using: .utf8)//Here combinedString is your string
let encodingString = data?.base64EncodedString()
print(encodingString!)

// OR Single line of code
let encodingString = combinedString.data(using: .utf8)?.base64EncodedString()//Here combinedString is your string
print(encodingString!)

这个字符串扩展可以提供帮助。

extension String {
    //Base64 decode
    func fromBase64() -> String? {
            guard let data = Data(base64Encoded: self) else {
                    return nil
            }
            return String(data: data, encoding: .utf8)
    }

    //Base64 encode
    func toBase64() -> String {
            return Data(self.utf8).base64EncodedString()
    }
 }

使用方法

let str = "Hello World"
str.toBase64().fromBase64()