如何在 JavaScript 中解码 Base64 字符串

How to decode a Base64 string in JScript

我必须在 JScript 中解码 Base64 字符串,并且我已经尝试使用此代码来执行指定操作:

var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
var el = xmlDom.createElement("tmp");
el.dataType = "bin.Base64"
el.text = "aGVsbG8gd29ybGQ=";
WScript.Echo(el.nodeTypedValue);

但是,不幸的是,它不起作用。它应该显示消息 Hello world 但 return 消息是一堆汉字。这是一个屏幕作为证据

还有,还有其他方法可以解码 Base64 编码的字符串吗?

您必须执行一些额外的步骤才能获得解码后的 base-64 的文本表示。

el.nodeTypedValue 的结果将是包含解码的 base-64 数据的字节数组。这需要转换成文本字符串。我假设示例使用 utf-8,但您可能需要修改它以适合您的文本编码。

var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
var el = xmlDom.createElement("tmp");
el.dataType = "bin.Base64"
el.text = "aGVsbG8gd29ybGQ=";
//WScript.Echo(el.nodeTypedValue);

// Use a binary stream to write the bytes into
var strm = WScript.CreateObject("ADODB.Stream");
strm.Type = 1;
strm.Open();
strm.Write(el.nodeTypedValue);

// Revert to the start of the stream and convert output to utf-8
strm.Position = 0;
strm.Type = 2;
strm.CharSet = "utf-8";

// Output the textual equivalent of the decoded byte array
WScript.Echo(strm.ReadText());
strm.Close();

这是输出:

请注意,此代码不适合生产。您需要在使用完毕后整理物品。

还有其他方法可以将字节数组转换为字符。这只是其中的一个例子。