[Swift]扩展String类:Base64的编码和解码

摘要:
原文已修改更新!强烈建议点击原文地址阅读!{12ifletdata=Data{13returnString14}15returnnil16}17}扩展方式2:1extensionString{2//Base64编码3funcencodBase64()-˃String?

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10670482.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

扩展方式1:

1 extension String {
2     //Base64编码
3     func encodBase64() -> String?{
4         if let data = self.data(using: .utf8) {
5             returndata.base64EncodedString()
6 }
7         returnnil
8 }
9 
10     //Base64解码
11     func decodeBase64() -> String?{
12         if let data =Data(base64Encoded: self) {
13             returnString(data: data, encoding: .utf8)
14 }
15         returnnil
16 }
17 }

扩展方式2:

1 extension String {
2     //Base64编码
3   func encodBase64() -> String?
4 {
5     let strData = self.data(using: String.Encoding.utf8)
6     let base64String = strData?.base64EncodedString(options: NSData.Base64EncodingOptions.init(rawValue: 0))
7     returnbase64String
8 }
9 
10     //Base64解码
11   func decodeBase64() -> String?
12 {
13     let decodedData = NSData(base64Encoded: self, options: NSData.Base64DecodingOptions.init(rawValue: 0))
14     let decodedString = NSString(data: decodedData! as Data, encoding: String.Encoding.utf8.rawValue) as String?
15     returndecodedString
16 }
17 }

测试代码:

1 var str:String = "Strengthen"
2 let strBase64:String = str.encodBase64()!
3 print(strBase64)
4 //Print U3RyZW5ndGhlbg==
5 
6 print(strBase64.decodeBase64())
7 //Print Optional("Strengthen")

免责声明:文章转载自《[Swift]扩展String类:Base64的编码和解码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux每日命令(39):lsof命令ubuntu最近升级到最新的linux内核后,网络无法使用怎么办?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【216】◀▶ IDL 字符串操作说明 (黑底)

参考:String Processing Routines —— 字符串处理函数 参考:IDL_String Methods 01   STRING 返回字符串。 02   STRCMP 比较字符串,一样返回1,不一样返回0,默认大小写敏感。 03   STRMATCH 字符串进行比较,一致返回1,不一致返回0。 04   STRCOMP...

springCloud 后端使用webSocket向前端推送消息

1、webSocket webSocket长连接是一种在单个tcp连接上进行全双工通信的协议,允许双向数据推送。一般微服务提供的restful API只是对前端请求做出相应。使用webSocket可以实现后端主动向前端推送消息。 2、springboot使用webSocket 1、pom文件添加依赖 <dependency> <...

NeatUpload 的使用

1 <httpModules> 2 <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload" /> 3 </httpModules> 来自 <http://www....

关于将桌面扩展到监视器的问题 extended my windows desktop onto this monitor

说下思路吧 下面是网上找的Use the EnumDisplayDevices() API call to enumerate the display devices on the system and look for those that don't have the DISPLAY_DEVICE_ATTACHED_TO_DESKTOP flag se...

Android笔记之强大的buildConfigField

在进行项目开发或维护时,经常会遇到调试和发布所用到的参数值不一致的情况 例如,服务器会分测试和正式,为了能方便地更改(自动更换)服务器地址,buildConfigField就派上用场了 以前都是手动更改的,极易出错T_T buildConfigField语法如下 buildConfigField "TypeName", "FieldName", "Fiel...

uniapp支付宝小程序上传图片转base64

最近使用uniapp涉及到一个上传图片的功能,原本看官方文档api觉得没问题,正常开发, 1. 首先微信端没问题 uni.getFileSystemManager().readFile({ filePath: url, //选择图片返回的相对路径 encoding: "base64", //编码格式 succes...