的陣列I具有Unicode字符串傳遞給VBScript過程(未視覺基本6,但VBScript)的。我想通過char迭代unicode字符串char,獲取每個符號的代碼,將代碼截斷爲字節範圍[0..255]並創建字節數組。字節的VBScript:Unicode字符串轉換爲字節
這樣新的數組應相比原始unicode字符串在存儲器小兩倍。我要保存這個數組通過ADODB.Stream對象提交進一步
我怎麼能unicode字符串轉換爲字節數組截斷以字節範圍符號代碼?
預先感謝您!
的陣列I具有Unicode字符串傳遞給VBScript過程(未視覺基本6,但VBScript)的。我想通過char迭代unicode字符串char,獲取每個符號的代碼,將代碼截斷爲字節範圍[0..255]並創建字節數組。字節的VBScript:Unicode字符串轉換爲字節
這樣新的數組應相比原始unicode字符串在存儲器小兩倍。我要保存這個數組通過ADODB.Stream對象提交進一步
我怎麼能unicode字符串轉換爲字節數組截斷以字節範圍符號代碼?
預先感謝您!
看來是沒有辦法創造VBS的字節數組(雖然這是在Visual Basic中非常簡單) - 所有的數組變量的數組。
任務是通過字符串類型將二進制流從服務器發送到vbs腳本。我已經找到了解決方案,在服務器上用CDATA節創建Xml文檔,該節包含base64編碼的字節數組作爲字符串數據。
客戶端(VBS)執行以下操作:
set xmlDoc = CreateObject("Microsoft.XmlDom")
xmlDoc.loadXML(dataFromServer)
base64str = xmlDoc.DocumentElement.Text ' it's base64 coded binary stream
arrayOfBytes = decodeBase64(base64str)
Function decodeBase64(base64)
set dm = CreateObject("Microsoft.XMLDOM")
set el = dm.createElement("tmp")
el.DataType = "bin.base64"
el.Text = base64
decodeBase64 = el.NodeTypedValue
set dm = Nothing
End Function
首先,如果你的字符串只包含ASCII字符的Unicode轉換爲ASCII纔會工作。由於unicode包含ascii,它只是刪除每個第二個字符的問題。
在互聯網上查找unicode瞭解詳情。
編輯:在Unicode中,每個ASCII字符進行與NULL(0)字節。刪除此字節將字符串轉換爲ASCII。
該函數創建一個字節數組:
' http://www.motobit.com/tips/detpg_binarytostring/
Function MultiByteToBinary(MultiByte)
'� 2000 Antonin Foller, http://www.motobit.com
' MultiByteToBinary converts multibyte string To real binary data (VT_UI1 | VT_ARRAY)
' Using recordset
Dim RS, LMultiByte, Binary
Const adLongVarBinary = 205
Set RS = CreateObject("ADODB.Recordset")
LMultiByte = LenB(MultiByte)
If LMultiByte>0 Then
RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
RS.Open
RS.AddNew
RS("mBinary").AppendChunk MultiByte & ChrB(0)
RS.Update
Binary = RS("mBinary").GetChunk(LMultiByte)
End If
MultiByteToBinary = Binary
End Function
該函數創建一個多字節字符串。
' http://www.motobit.com/help/regedit/pa26.htm
'Converts unicode string to a multibyte string
Function StringToMB(S)
Dim I, B
For I = 1 To Len(S)
B = B & ChrB(Asc(Mid(S, I, 1)))
Next
StringToMB = B
End Function
感謝您的回覆,但在vbs中沒有CharW函數。我發現瞭如何在vbs中創建字節數組,我會在幾天內描述它 – 2010-09-09 10:14:39