我不确定是否做错了什么,但是如果我保存在 .js
文件中,并使用 UTF-8
编码,似乎无法通过 Windows Script Host
运行以下 JScript:
var name = "Hello world!";
WScript.echo(name);
当我运行它时,它给我这个错误信息:
![enter image description here](https://istack.dev59.com/xexOt.webp)
Windows Script Host引擎不兼容UTF-8编码吗?
VBScript和JScript的可能源文件编码为ANSI或UTF-16(LE)。不能使用UTF-8。
.wsf
)。显然,Windows脚本宿主支持使用UTF-8编码的XML。该问题中的脚本将编写为WSF格式如下:<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<job>
<script language="JScript"></script>
</job>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<job>
<script language="JScript" src="Your-UTF-8-File.js" />
第一个问题是js文件需要BOM。第二个问题是我找不到在WSF中启用JScript 5.8模式的方法,而且Chakra在WSF中也不能使用。但是我仍然使用它。
更新。我发现了一个更好的解决方案:我有一个符合丑陋的WScript要求的引导程序,在其中我使用ADODB.Stream以UTF-8读取文件并eval()它们,这样我甚至可以在Chakra上运行没有BOM的UTF-8 JavaScript!