Я использую ActivX из IE11, чтобы получить доступ к локальному файлу и прочитать содержимое текстового файла. Когда я открываю файл локально, он отображает текст в правильном формате, но при открытии с использованием javascript в качестве вывода появляется случайный китайский текст в юникоде.
Я загружаю файл .bat, который запускает файл .ps1, чтобы получить ping и tracert веб-сайта, и экспортирую его в файл .txt. После завершения экспорта я читаю содержимое файла.
Ниже приведен мой код .ps1, который успешно выполняется.
$PingStatus = test-connection 8.8.8.8 -Count 4
$PingStatus | out-file $env:TEMP/pingTrace.txt
$Trace = Test-NetConnection -TraceRoute -ComputerName 8.8.8.8
$Trace | out-file $env:TEMP/TraceRoute.txt
Ниже приведен мой код Javascript, с помощью которого я читаю файл.
var reader = new FileReader();
var output = ""; //placeholder for text output
var ws = new ActiveXObject("WScript.Shell");
var filePath = ws.ExpandEnvironmentStrings("%TEMP%") + "\\" + String.fromCharCode(92) + "\\" + "pingTrace.txt";
var tracePath = ws.ExpandEnvironmentStrings("%TEMP%") + "\\" + String.fromCharCode(92) + "\\" + "TraceRoute.txt";
reader = new ActiveXObject("Scripting.FileSystemObject");
var file = reader.OpenTextFile(filePath, 1); //ActiveX File Object
output = file.ReadAll(); //text contents of file
file.Close(); //close file "input stream"
var trace = reader.OpenTextFile(tracePath, 1); //ActiveX File Object
var traceroute = trace.ReadAll();
trace.Close();
console.log("Ping Status: "+output);
console.log("Trace Route: "+traceroute);
Когда я открываю текстовый файл в блокноте или любом редакторе, он показывает правильный результат в тексте на английском языке. Но когда я читаю его из JavaScript, он показывает китайские символы Unicode. Я прилагаю оба скриншота для справки.
Вот как это должно выглядеть
Это происходит при чтении с использованием JavaScript