我正在使用IE11中的ActivX来访问本地文件并读取文本文件的内容。当我在本地打开文件时,它以正确的格式显示文本,但是当使用javascript打开文件时,一些随机的unicode中文文本会显示为输出。
我在做什么,我正在下载一个运行.ps1文件的.bat文件,以获取网站的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);
当我在记事本或任何编辑器中打开txt文件时,它以英文显示正确的结果。但是,当我从javascript中读取它时,它会显示unicode汉字。我附上这两个屏幕截图,以供您参考。 This is how it should look like