js前端实现字符串和base64之间互相转换!
七娃博客315人阅读
最近项目中需要将“字符串”编码成 base64格式,或者将base64转为字符串。作为一名优秀的前端工程师,那怎么不学习呐?随后,网上copy了一个大佬的idea。如下,真香!
常规数据
//编码 function b64Encode (str) { return btoa(encodeURIComponent(str)); } //解码 function b64Decode (str) { return decodeURIComponent(atob(str)); }
别说,通过btoa进行编码,然后atob进行解码,这对js的方法很nice啊!
解决中文乱码
随后领导大佬又返回问题了,字符串可以解码成功啊!假如字符串内容是带解码的xml,返回的结果为什么是乱码的,你看看你写的代码!
然后,我本地测试了一下xml编码后的字符吗,解码之后,中文内容确实是如下的乱码状态。作为一名优秀的前端工程师,怎么能有bug呐!随后,网上copy了一个大佬的idea。如下,真香!
// 编码 function getEncode64(str){ return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,function toSolidBytes(match, p1) { return String.fromCharCode('0x' + p1); })); } // 解码 function getDecode(str){ return decodeURIComponent(atob(str).split('').map(function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); }
哈哈,一顿 ctrl+c/v,搞定,黑猫白猫,抓到老鼠就是好猫!作为一名优秀的前端工程师,默默打开了掘金,不说了,学习去了(谁知道尼,搞不好摸鱼)。
评论 | 0 条评论
登录之后才可留言,前往登录