javascript使用btoa和atob来进行Base64转码和解码
程序员文章站
2022-09-30 10:55:33
javascript原生的api本来就支持,base64,但是由于之前的javascript局限性,导致base64基本中看不中用。当前html5标准正式化之际,base6...
javascript原生的api本来就支持,base64,但是由于之前的javascript局限性,导致base64基本中看不中用。当前html5标准正式化之际,base64将有较大的转型空间,对于html5 api中出现的如filereader api, 拖拽上传,甚至是canvas,video截图都可以实现。
好了,前言说了一大堆,base64转码和解码有哪些方法:
一.我们来看看,在javascript中如何使用base64转码
var str = 'javascript'; window.btoa(str) //转码结果 "amf2yxnjcmlwda==" window.atob("amf2yxnjcmlwda==") //解码结果 "javascript"
二.对于转码来说,base64转码的对象只能是字符串,因此来说,对于其他数据还有这一定的局限性,在此特别需要注意的是对unicode转码。
var str = "china,中国" window.btoa(str)
uncaught domexception: failed to execute 'btoa' on 'window': the string to be encoded contains characters outside of the latin1 range.
很明显,这种方式是不行的,那么如何让他支持汉字呢,
这就要使用window.encodeuricomponent和window.decodeuricomponent
var str = "china,中国"; window.btoa(window.encodeuricomponent(str)) //"q2hpbmelruylqkmloemlrtqlqjglquqlrtulouilqkq=" window.decodeuricomponent(window.atob('q2hpbmelruylqkmloemlrtqlqjglquqlrtulouilqkq=')) //"china,中国"
btoa与atob的使用方法就是这么简单,大家可以尝试一下。希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!