在 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()
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()