zoukankan      html  css  js  c++  java
  • java script btoa与atob的

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

    好了,前言说了一大堆,Base64转码和解码有哪些方法:

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

    1
    2
    3
    4
    5
    6
    7
    var str = 'javascript';
     
    window.btoa(str)
    //转码结果 "amF2YXNjcmlwdA=="
     
    window.atob("amF2YXNjcmlwdA==")
    //解码结果 "javascript"

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

    1
    2
    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

    1
    2
    3
    4
    5
    6
    var str = "China,中国";
    window.btoa(window.encodeURIComponent(str))
    //"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="
     
    window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))
    //"China,中国"

    btoa与atob的使用方法就是这么简单,大家可以尝试一下。希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

    原文链接:http://www.jb51.net/article/108957.htm

  • 相关阅读:
    POJ 2987:Firing(最大权闭合图)
    BZOJ 1001:[BeiJing2006]狼抓兔子(最小割)
    HDU 1007:Quoit Design(分治求最近点对)
    POJ 1986:Distance Queries(倍增求LCA)
    HDU 3879 && BZOJ 1497:Base Station && 最大获利 (最大权闭合图)
    BZOJ-1011 遥远的行星
    BZOJ-1044 木棍分割
    BZOJ-1042 硬币购物
    BZOJ-1050 旅行
    BZOJ-1037 生日聚会
  • 原文地址:https://www.cnblogs.com/cbugs/p/8399040.html
Copyright © 2011-2022 走看看