25 lines
754 B
JavaScript
25 lines
754 B
JavaScript
|
|
// 微信小程序 atob polyfill(bwip-js 字体解码依赖)
|
|||
|
|
// 此文件作为副作用导入,必须在 bwip-js 之前加载
|
|||
|
|
|
|||
|
|
var _chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
|
|||
|
|
|
|||
|
|
function _atob(input) {
|
|||
|
|
var str = String(input).replace(/[=]+$/, '')
|
|||
|
|
var output = ''
|
|||
|
|
var bc = 0, bs, buffer = 0, i = 0
|
|||
|
|
for (; str.charAt(i | 0); i++) {
|
|||
|
|
bs = _chars.indexOf(str.charAt(i))
|
|||
|
|
buffer = (buffer << 6) | bs
|
|||
|
|
bc += 6
|
|||
|
|
if (bc >= 8) {
|
|||
|
|
bc -= 8
|
|||
|
|
output += String.fromCharCode((buffer >>> bc) & 255)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return output
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 同时设置 globalThis 和 global(兼容不同微信基础库版本)
|
|||
|
|
try { globalThis.atob = globalThis.atob || _atob } catch (e) {}
|
|||
|
|
try { global.atob = global.atob || _atob } catch (e) {}
|