美文网首页
使用atob方法解码中文字符的操作

使用atob方法解码中文字符的操作

作者: BigDipper | 来源:发表于2020-03-26 16:07 被阅读0次

    参考地址

    为何要多此一举,对信息进行编码?

    由于一些网络通讯协议的限制, 又或者是出于信息加密的目的, 我们就需要将原信息转换为 base64 编码,然后才能进行传输。

    要如何操作?

    通常的方法是通过window.btoa()方法对源数据进行编码, 然后接收方使用window.atob()方法对其进行解码,从而得到原数据。

    注意:方法中的b字母不是base64的缩写,a字母才是表示的base64,别被蒙了。

    这种方法好使吗,会不会有什么问题?

    很悲惨,这种方法存在的问题是:window.btoa()不支持中文,window.atob()转换含有中文的base64编码的时候中文部分会变为乱码

    还有救吗?

    不能因噎废食,虽然对中文支持的不好,但是我们用下面的方法变通一下,就可以完美支持中文了。

    function utf8_to_b64(str) {
       return window.btoa(unescape(encodeURIComponent(str)));
    }
    
    function b64_to_utf8(str) {
       return decodeURIComponent(escape(window.atob(str)));
    }
    

    相关文章

      网友评论

          本文标题:使用atob方法解码中文字符的操作

          本文链接:https://www.haomeiwen.com/subject/mvycuhtx.html