JavaScript把中文转Base64编码

Base64 就是一种编码方法,可以将任意值转成 0~9、A~Z、a-z、+和/这64个字符组成的可打印字符。使用它的主要目的,不是为了加密,而是为了不出现特殊字符,简化程序的处理。
JavaScript 原生提供两个 Base64 相关的方法。
btoa():任意值转为 Base64 编码
atob():Base64 编码转为原来的值

   let string = 'Hello World!';
   let strBase64=btoa(string) // "SGVsbG8gV29ybGQh"
   console.log(atob(strBase64)); // "Hello World!"

但是要是非 ASCII 码的字符,会报错

   let string = '你好!';
   let strBase64=btoa(string) 
   console.log(atob(strBase64)); 

要将非 ASCII 码字符转为 Base64 编码,必须中间插入一个转码环节,再使用这两个方法。

 function b64Encode(str) {
        return btoa(encodeURIComponent(str));
    }
    function b64Decode(str) {
        return decodeURIComponent(atob(str));
    }
    
    let strChinaBase64 = b64Encode('你好'); // "JUU0JUJEJUEwJUU1JUE1JUJE"
    console.log(b64Decode(strChinaBase64)); // "你好"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容