javascript 使用btoa和atob来进行Base64转码和解码

javascript 使用btoa和atob来进行Base64转码和解码老是记不住这两个函数,干脆写下来,比较好翻。avascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用。当前html5标准正式化

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

老是记不住这两个函数,干脆写下来,比较好翻。

 

 

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

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

一.我们来看看,在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,中国"
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167149.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zookeeper入门教程_dubbo和Zookeeper详解

    zookeeper入门教程_dubbo和Zookeeper详解zookeeperwatcher架构zookeeper 配置中心分布式ID分布式锁集群搭建数据一致性协议:zab协议Zookeeper Leader选举Observer角色及其配置watcher架构客户端首先将Watcher注册到服务器,同时将Watch对象保存到客户端的Watch管理器中。当Zookeeper服务器监听到的数据发生变化时,服务器会通知客户端,接着客户端的Watch管理器会触发相关的Watcher来回调响应处理逻辑,从而完成整体的数据发布/订阅流程。javaAPIJava

    2022年8月8日
    1
  • POJ 3340 & HDU 2410 Barbara Bennett's Wild Numbers(数学)「建议收藏」

    POJ 3340 & HDU 2410 Barbara Bennett's Wild Numbers(数学)

    2022年1月21日
    35
  • docker nginx挂载目录_挂载成功之后如何安装

    docker nginx挂载目录_挂载成功之后如何安装创建目录一般将nginx目录挂载到宿主机方便操作,创建nginx目录:mkdir/home/dockernginxmkdir/home/dockernginx/{conf,html,logs}创建nginx配置文件如下:vim/home/dockernginx/conf/nginx.confnginx默认配置如下:usernginx;worker_processesauto;error_log/var/log/nginx/error.lognotice;pi

    2022年8月20日
    6
  • html的下拉框用什么标签实现_取消下拉框

    html的下拉框用什么标签实现_取消下拉框下拉框在生活中应用很广

    2022年4月19日
    38
  • 视图索引

    视图索引创建索引视图  视图也称为虚拟表,这是因为由视图返回的结果集其一般格式与由列和行组成的表相似,并且,在 SQL 语句中引用视图的方式也与引用表的方式相同。标准视图的结果集不是永久地存储在数据库中。查询每次引用视图时,Microsoft® SQL Server™ 2000 会动态地将生成视图结果集所需的逻辑合并到从基表数据生成完整查询结果集所需的逻辑

    2022年7月22日
    13
  • 数据库 schema含义_数据库表的概念

    数据库 schema含义_数据库表的概念数据库中的Schema突然想到数据库中的schema是什么,于是多方搜索有了基本了解,做一个简单记录:在SQL环境下,schema就是数据库对象的集合,所谓的数据库对象也就是常说的表,索引,视图,存储过程等。在schema之上的,就是数据库的实例,也就是通常createdatabases获得的东西。也就是说一个schema可以有多个schema,可以给不同的用户创建不同的schema,并且他们…

    2022年10月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号