Javascript atob没有正确解码base64字符串

时间:2017-08-01 13:30:58

标签: javascript html string base64

我正在尝试解码javascript base64字符串。编码的字符串来自dataUri。它是

<a href="data:application/octet-stream;charset=utf-16le;base64,//5mAG8AbwAgAGIAYQByAAoA">text file</a>

我正在尝试解码“// 5mAG8AbwAgAGIAYQByAAoA”,它应该将“foo bar”作为输出。当我单击锚标记时,它会按预期下载一个文件,其中包含相同的预期字符串“foo bar”。

如果我使用atob('//5mAG8AbwAgAGIAYQByAAoA')我没有得到所需的输出

var a=atob('//5mAG8AbwAgAGIAYQByAAoA');
console.log(a);

我甚至试图将“utf8”作为第二个论点而没有运气:(

如何从此dataUri中提取原始编码字符串?谢谢:))

1 个答案:

答案 0 :(得分:1)

//在函数atob中无效:它只会使用有效的Base64字符串,其中包含数字,字母,有时还包含==。首先剥离它然后运行它:

> atob('5mAG8AbwAgAGIAYQByAAoA') // console input
< "æ`ðð" // console output; SO stripped some chars

正如@Guillaume Badi在评论中所说,你的Base64字符串不是 foo bar。说实话,它看起来更像是一个身份验证密钥/标记,无论如何通常都不是人类可读的。