我必须在 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
但返回的信息却是一堆汉字。这是一个屏幕作为证据
并且,是否有另一种方法来解码 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();
这是输出:
请注意,此代码不适合生产。使用完物品后,您需要对其进行整理。
还有其他方法可以将字节数组转换为字符。这只是其中一个例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)