Base64转码和解码

javascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用。当前html5标准正式化之际,Base64将有较大的转型空间,对于Html5 Api中出现的如FileReader Api, 拖拽上传,甚至是Canvas,Video截图都可以实现。

好了,前言说了一大堆,开发者需要重视:

一.我们来看看,在javascript中如何使用Base64转码

varstr ='javascript';window.btoa(str)//转码结果"amF2YXNjcmlwdA=="window.atob("amF2YXNjcmlwdA==")//解码结果"javascript"

二.对于转码来说,Base64转码的对象只能是字符串,因此来说,对于其他数据还有这一定的局限性,在此特别需要注意的是对Unicode转码。

varstr ="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

varstr ="China,中国";

window.btoa(window.encodeURIComponent(str))  //"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="

window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))  //"China,中国"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。 1.base64 算法的由来 base6...
    沮溺阅读 1,641评论 1 1
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,360评论 0 4
  • 相关文章:一步到位 Base64 编码Base64 之 JavaScript 实现 上面的相关文章中有一篇Base...
    JSON_NULL阅读 10,467评论 4 14
  • 即使是在国外也能吃到海底捞,香港也有晓宇,可地道的火锅感受,只有重庆原住民才会有原汁味的用户体验。 我们吃老火锅,...
    米孚阅读 594评论 0 1
  • 在静下心来的时候,就会问自己:我的人生意义是什么?我用力的想了想,觉得应该是拥有健康的身体和能实现人生最大价值的可...
    鹿鹿无畏阅读 691评论 0 51