当然,我读过关于atob()
和btoa()
,MDN website中的JavaScript
Base64
解码和编码功能。
但在使用中,我犯了一个错误 * 但 * 一切都工作得很好,这对我来说很奇怪。下面的代码:
const en = btoa('amer');
const de = atob(en);
字符串
绝对console.log(de)
显示"amer"
。但我犯了个错误
const en = atob('amer');
const de = btoa(en);
型
令人惊讶的是,console.log(de)
再次显示"amer"
!我不明白为什么!atob()
方法用于解码,我将其用作编码函数,但它可以工作,然后btoa()
函数解码此错误的结果并返回"amer"
!虽然我预计de
必须是一个错误的和不同的东西。
1条答案
按热度按时间6gpjuf901#
在这些API中,出于助记的目的,“B”可以被认为代表“二进制”>,而“a”代表“ASCII”。实际上,由于历史原因,这些函数的输入和输出都是Unicode字符串。
https://www.w3.org/TR/html/webappapis.html#base64-utility-methods
字符串