使用atob解码base64字符串会引发错误,即使它没有任何非ASCII字符

时间:2017-01-30 21:45:09

标签: javascript node.js base64 buffer

我有这个Base64编码的字符串:const encodedString = 'eyJ1c2VybmFtZSI6Imxha2VzYXJlIiwib2F1dGhQcm92aWRlciI6ImdpdGh1YiIsIm9hdXRoSWQiOiI3NTc4NTU5IiwiYXZhdGFyVXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc1Nzg1NTk_dj0zIiwiaWF0IjoxNDg1ODAxODI3fQ';' {"用户名":" lakesare"," ; oauthProvider":" github上"" oauthId":" 7578559"" avatarUrl":" {{3} }"" IAT":1485801827}'

在节点中对其进行解码:

Buffer.from(encodedString, 'base64').toString();

在浏览器中解码它(无法执行' atob' on' Window':要解码的字符串未正确编码。):

atob(encodedString);

1 个答案:

答案 0 :(得分:0)

我最终使用buffer包(https://avatars.githubusercontent.com/u/7578559?v=3npm install --save buffer):

import { Buffer } from 'buffer/';
Buffer.from(encodedString, 'base64').toString()

返回正确解码的字符串。