的阵列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