base 64 以角度编码和解码字符串 (2+)
Posted
技术标签:
【中文标题】base 64 以角度编码和解码字符串 (2+)【英文标题】:base 64 encode and decode a string in angular (2+) 【发布时间】:2017-06-17 18:14:51 【问题描述】:如何使用 base64 对 Angular 2 中的字符串进行编码或解码??? 我的前端工具是 Angular 2。我有一个密码字符串,在将其传递给 API 之前,我需要进行 base64 编码。由于在服务中 base64 编码的字符串将被解码。
所以我正在为 Angular2/Typescript 和一些选项寻找一些 base64 编码/解码库。
谢谢!!!
【问题讨论】:
developer.mozilla.org/en/docs/Web/API/WindowBase64/… 【参考方案1】:从 Angular 12 开始,btoa()
和 atob()
函数已被弃用。改用这些:
console.log(Buffer.from("Hello World").toString('base64'));
// SGVsbG8gV29ybGQ=
console.log(Buffer.from("SGVsbG8gV29ybGQ=", 'base64').toString('binary'))
// Hello World
注意:你必须显式编码!
【讨论】:
【参考方案2】:Angular2中encoding转base64,可以使用btoa()函数。
例子:-
console.log(btoa("stringAngular2"));
// Output:- c3RyaW5nQW5ndWxhcjI=
对于Angular2中的base64解码,可以使用atob()函数。
例子:-
console.log(atob("c3RyaW5nQW5ndWxhcjI="));
// Output:- stringAngular2
【讨论】:
【参考方案3】:使用btoa()
进行编码,使用atob()
进行解码
text_val:any="your encoding text";
编码文本:console.log(btoa(this.text_val)); //eW91ciBlbmNvZGluZyB0ZXh0
解码文本:console.log(atob("eW91ciBlbmNvZGluZyB0ZXh0")); //your encoding text
【讨论】:
您想提供帮助真是太棒了,但是这个答案并没有增加任何额外的价值,因为它是已接受答案的副本。在 SO 上,我们希望避免重复。请考虑删除此答案。【参考方案4】:使用btoa()
函数进行编码:
console.log(btoa("password")); // cGFzc3dvcmQ=
要解码,可以使用atob()
函数:
console.log(atob("cGFzc3dvcmQ=")); // password
【讨论】:
在使用之前,您可能需要确认您的目标浏览器是否支持:caniuse.com/#search=btoa @edrian 应该没问题,只要您不支持非常旧的 IE 版本。 如何将变量类型转换为 base 64?我使用 FileReader 并得到 base64 字符串作为结果 请注意 btoa() 和 atob() 不支持 utf-8 字符! @Robert 这应该可以工作:***.com/questions/30106476/…【参考方案5】:使用btoa("yourstring")
更多信息:https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
TypeScript 是 javascript 的超集,它可以使用现有的 Javascript 库和 Web API
【讨论】:
以上是关于base 64 以角度编码和解码字符串 (2+)的主要内容,如果未能解决你的问题,请参考以下文章