2015-11-13 119 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