Вам необходимо выполнить некоторые дополнительные шаги, чтобы получить текстовое представление декодированного 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();
Вот вывод:
Обратите внимание, что этот код не подходит для производства.Вам нужно будет привести в порядок объекты после завершения их использования.
Существуют и другие способы преобразования массива байтов в символы.Это только один из примеров.