加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

vbscript – 为什么WScript.StdOut.Write方法在VBS和JScript中的

发布时间:2020-12-14 01:50:27 所属栏目:Windows 来源:网络整理
导读:我在VBS和JScript中有两个小程序: VBScript.vbs: For i=0 To 255 WScript.StdOut.Write Chr(i)Next JScript.js: for ( var i=0; i = 255; ++i ) WScript.StdOut.Write(String.fromCharCode(i)); 当我在命令提示符中执行它们时,它们显示不同的结果: C:csc
我在VBS和JScript中有两个小程序:

VBScript.vbs:

For i=0 To 255
   WScript.StdOut.Write Chr(i)
Next

JScript.js:

for ( var i=0; i <= 255; ++i )
   WScript.StdOut.Write(String.fromCharCode(i));

当我在命令提示符中执行它们时,它们显示不同的结果:

C:>cscript /nologo VBScript.vbs
 ?????
???????§??↑↓→←∟?▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]
^_`abcdefghijklmnopqrstuvwxyz{|}~???'?".┼╬^%S<O?Z??''""--~Ts>o?zY ?¢£¤¥|§¨?a??-?
ˉ°±23′μ?·?1o?????àá??????èéê?ìí??D?òó???×?ùú?üYT?àáa?????èéê?ìí??e?òó???÷?ùú?üyt
?

C:>cscript /nologo JScript.js
 ?????
???????§??↑↓→←∟?▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]
^_`abcdefghijklmnopqrstuvwxyz{|}~????????????????????????????????? ?¢£¤¥|§¨?a??-
?ˉ°±23′μ?·?1o?????àá??????èéê?ìí??D?òó???×?ùú?üYT?àáa?????èéê?ìí??e?òó???÷?ùú?üy
t?

可以解释之前的输出,因为JScript的fromCharCode方法与VBScript的Chr函数之间存在一些操作差异.但是,如果尝试将输出重定向到磁盘文件,结果会有很大不同:

C:>cscript /nologo VBScript.vbs > VBScript.txt

C:>cscript /nologo JScript.js > JScript.txt
C:JScript.js(2,4) Microsoft JScript runtime error: Invalid procedure call or argument

C:>dir *.txt

15/01/2013  05:48 p.m.               128 JScript.txt
15/01/2013  05:48 p.m.               256 VBScript.txt

在这种情况下,两个程序在相同的条件下使用相同的WSH方法,所以我不明白为什么VBS正确生成256个字符的文件,但JScript发出错误并只生成前128个字符.

这里发生了什么?有没有办法在JScript中正确生成具有256个不同字符的相同文件? TIA

安东尼奥

第一,

你的代码的逻辑是不一样的.

VBScript.vbs的计数从ZERO(0)开始,而JScript.js从ONE(1)开始.

更改JScript中的增量运算符以使它们相同:

for ( var i=0; i <= 255; i++ )
    WScript.StdOut.Write(String.fromCharCode(i));

第二,

你使用的功能是不一样的
因为他们都返回不同的结果
在每个字符上下文.

Chr()函数返回ASCII字符,

而fromCharCode()函数返回的Unicode字符可能每个字符有1到4个字节.

因此,ASCII集中的?字符与Unicode集中的?字符不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读