写了一段VBscript代码,用Sublime Text写的,默认是UTF-8 without BOM编码,但是总是出错:
- 字符串常量没有关闭,我看了一下就是一个汉字的结束的位置,
*.vbs(22, 47) Microsoft VBScript compilation error: Unterminated string constant
后来不知道改动了什么,有出现下面的错误,同一个位置
- 无效字符
*.vbs(22, 47) Microsoft VBScript compilation error: Invalid character
尝试解决
知道是编码的问题,所以
使用自带的Notepad打开
另存为的是否选择“编码”有4个选项
不知道这里的“Unicode”和“Unicode big endian”和“utf-8”有什么区别,既然“utf-8”不行,就使用Unicode吧,
发现又报了一个其他的错误,但是汉字的问题不报错了。
*.vbs(2, 5) Microsoft VBScript runtime error: Type mismatch: 'Hour'
是
hours = Hour(Time)
这一行的问题,去掉了“Dim”定义就好了
Unicode不是UTF-8编码?
现在可以正常的运行了,不过到底这个是什么编码?
用Ubuntu on Windows查看了一下,发现了端倪
$ file ok.vbs
ok.vbs: Little-endian UTF-16 Unicode text, with CRLF, CR line terminators
$ file not.ok.vbs
not.ok.vbs: UTF-8 Unicode text, with CRLF line terminators
还真是
在Sublime Text中把文件编码改成UTF-16 LE就好了😒