2015-11-13 75 views
0

如果此问题以前已得到解答,请致歉,但我无法找到解释。我在VBScript中创建了一个脚本来加密用户输入并匹配已经加密的密码。我遇到了一些问题,并设法推导出以下内容。VBA字节数组到字符串

我有一个字节数组(1到2)作为值(1,16)。我然后定义与阵列值的字符串按如下:

Dim bytArr(1 To 2) As Byte 
Dim output As String 
bytArr(1) = 16 
bytArr(2) = 1 

output = bytArr 
Debug.Print output 

输出我得到的是d(ETH)ASCII值208.可能有人请解释字节数组如何转换为这个角色?

回答

1

获取上述声明的计算机架构记endianness(字节顺序)保持在一起:英特尔x86处理器使用little-endian的,所以字节数组(0x100x01)是一样的unicode字符串U+0110

字符是合并通过公然mojibake的情况。为了证明,请使用Asc and AscW Functions,如下所示:Debug.Print output, Asc(output), AscW(output)带有不同的控制台代码页,例如:根据chcp 852chcp 1250

+0

嗨JosefZ, 感谢您的输入,但我不知道我完全理解。当我按照上面的脚本运行脚本时,我接收到'output = bytArr'的输出为208.我认为这与ASCII值有关,因此与小写的eth(208)相对应,但是如果我试图通过改变来显示字符它会显示大写字母eth(209)的脚本。 您能否准确解释数组16,1是如何合并以创建值208的? – Professor