客户端 Javascript 中的 Base64 编码和解码
2022-08-29 23:48:24
JavaScript 中是否有任何方法可用于使用 base64 编码对字符串进行编码和解码?
JavaScript 中是否有任何方法可用于使用 base64 编码对字符串进行编码和解码?
一些浏览器,如Firefox,Chrome,Safari,Opera和IE10 +可以在本地处理Base64。看看这个Stackoverflow问题。它使用 btoa()
和 atob()
函数。
对于服务器端 JavaScript (Node),您可以使用 s 进行解码。Buffer
如果您要使用跨浏览器解决方案,则可以使用现有的库(如CryptoJS)或代码,例如:
http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html(存档))
对于后者,您需要彻底测试该功能的跨浏览器兼容性。并且已经报告了错误。
// Define the string
var string = 'Hello World!';
// Encode the String
var encodedString = btoa(string);
console.log(encodedString); // Outputs: "SGVsbG8gV29ybGQh"
// Decode the String
var decodedString = atob(encodedString);
console.log(decodedString); // Outputs: "Hello World!"
为AMD,CommonJS,Nodejs和浏览器重写和模块化的UTF-8和Base64 Javascript编码和解码库/模块。跨浏览器兼容。
以下是在 Node 中将普通文本编码为 base64 的方法.js:
//Buffer() requires a number, array or string as the first parameter, and an optional encoding type as the second parameter.
// Default is utf8, possible encoding types are ascii, utf8, ucs2, base64, binary, and hex
var b = Buffer.from('JavaScript');
// If we don't use toString(), JavaScript assumes we want to convert the object to utf8.
// We can make it convert to other formats by passing the encoding type to toString().
var s = b.toString('base64');
以下是解码 base64 编码字符串的方法:
var b = Buffer.from('SmF2YVNjcmlwdA==', 'base64')
var s = b.toString();
使用 dojox.encoding.base64 对字节数组进行编码:
var str = dojox.encoding.base64.encode(myByteArray);
解码 base64 编码的字符串:
var bytes = dojox.encoding.base64.decode(str)
<script src="bower_components/angular-base64/angular-base64.js"></script>
angular
.module('myApp', ['base64'])
.controller('myController', [
'$base64', '$scope',
function($base64, $scope) {
$scope.encoded = $base64.encode('a string');
$scope.decoded = $base64.decode('YSBzdHJpbmc=');
}]);
如果你想了解更多关于base64的编码方式,特别是在JavaScript中,我会推荐这篇文章:JavaScript中的计算机科学:Base64编码