js中的base64转化
创建一个base64.js文件,将以下代码粘贴进去
var Base64= { _keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode:function(e){ var t=""; var n,r,i,s,o,u,a; var f=0; e=Base64._utf8_encode(e); while(f<e.length){ n=e.charCodeAt(f++); r=e.charCodeAt(f++); i=e.charCodeAt(f++); s=n>>2; o=(n&3)<<4|r>>4; u=(r&15)<<2|i>>6; a=i&63; if(isNaN(r)){ u=a=64 }else if(isNaN(i)){ a=64 } t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a) } return t }, decode:function(e){ var t=""; var n,r,i; var s,o,u,a; var f=0; e=e.replace(/[^A-Za-z0-9+/=]/g,""); while(f<e.length){ s=this._keyStr.indexOf(e.charAt(f++)); o=this._keyStr.indexOf(e.charAt(f++)); u=this._keyStr.indexOf(e.charAt(f++)); a=this._keyStr.indexOf(e.charAt(f++)); n=s<<2|o>>4; r=(o&15)<<4|u>>2; i=(u&3)<<6|a; t=t+String.fromCharCode(n); if(u!=64){ t=t+String.fromCharCode(r) } if(a!=64){ t=t+String.fromCharCode(i) } } t=Base64._utf8_decode(t); return t }, _utf8_encode:function(e){ e=e.replace(/rn/g,"n"); var t=""; for(var n=0;n<e.length;n++){ var r=e.charCodeAt(n); if(r<128){ t+=String.fromCharCode(r) }else if(r>127&&r<2048){ t+=String.fromCharCode(r>>6|192); t+=String.fromCharCode(r&63|128) }else{ t+=String.fromCharCode(r>>12|224); t+=String.fromCharCode(r>>6&63|128); t+=String.fromCharCode(r&63|128) } } return t }, _utf8_decode:function(e){ var t=""; var n=0; var r=c1=c2=0; while(n<e.length){ r=e.charCodeAt(n); if(r<128){ t+=String.fromCharCode(r); n++ }else if(r>191&&r<224){ c2=e.charCodeAt(n+1); t+=String.fromCharCode((r&31)<<6|c2&63); n+=2 }else{ c2=e.charCodeAt(n+1); c3=e.charCodeAt(n+2); t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63); n+=3 } } return t } };
//以上工具类有个bug ,就是存在 "return" 时 会变成 "retun" 少 "r"
建议用这种方式
1 | window.btoa(unescape(encodeURIComponent(id.val()))) |
本文来自博客园,作者:lanwf,转载请注明原文链接:https://www.cnblogs.com/lccsdncnblogs/p/16910513.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了