我在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 ¡¢£¤¥¦§¨©ª«¬®
- ¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ
- ÿ
- C:>cscript /nologo JScript.js
- ☺☻♥♦♣
- ♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]
- ^_`abcdefghijklmnopqrstuvwxyz{|}~⌂???????????????????????????????? ¡¢£¤¥¦§¨©ª«¬
- ®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüý
- þÿ
可以解释之前的输出,因为JScript的fromCharCode方法与VBScript的Chr函数之间存在一些操作差异.但是,如果尝试将输出重定向到磁盘文件,结果会有很大不同:
在这种情况下,两个程序在相同的条件下使用相同的WSH方法,所以我不明白为什么VBS正确生成256个字符的文件,但JScript发出错误并只生成前128个字符.
这里发生了什么?有没有办法在JScript中正确生成具有256个不同字符的相同文件? TIA
安东尼奥