我有这个Base64编码的字符串:const encodedString = 'eyJ1c2VybmFtZSI6Imxha2VzYXJlIiwib2F1dGhQcm92aWRlciI6ImdpdGh1YiIsIm9hdXRoSWQiOiI3NTc4NTU5IiwiYXZhdGFyVXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc1Nzg1NTk_dj0zIiwiaWF0IjoxNDg1ODAxODI3fQ';
('{“ username”:“ lakesare”,“ oauthProvider”:“ github”,“ oauthId”:“ 7578559”,“ avatarUrl”:“ https://avatars.githubusercontent.com/u/7578559?v=3”, “ iat”:1485801827}')
在节点中对其进行解码:
Buffer.from(encodedString, 'base64').toString();
不能在浏览器中对其进行解码(无法在“窗口”上执行“ atob”:要解码的字符串未正确编码。):
atob(encodedString);
最佳答案
我最终使用了buffer
软件包(https://github.com/feross/buffer,npm install --save buffer
):
import { Buffer } from 'buffer/';
Buffer.from(encodedString, 'base64').toString()
返回正确解码的字符串。
关于javascript - 使用atob解码base64字符串会引发错误,即使它没有任何非ASCII字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41945936/