String 如何在JScript中解码Base64字符串

String 如何在JScript中解码Base64字符串,string,base64,jscript,String,Base64,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); 但不幸的是,它不起作用。它应该显示消息hellow

我必须在JScript中解码Base64字符串,我已经尝试了以下代码来执行指定的操作:

var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
var el = xmlDom.createElement("tmp");
el.dataType = "bin.Base64"
el.text = "aGVsbG8gd29ybGQ=";
WScript.Echo(el.nodeTypedValue);
但不幸的是,它不起作用。它应该显示消息
helloworld
,但返回消息是一堆汉字。这是一个屏幕作为证据


还有,还有其他方法可以解码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();
以下是输出:

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


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

谢谢,这一个帮助了我:)