vbscript:将unicode字符串转换为字节数组

我有unicode字符串传递给vbscript程序(不是visual basic 6,而是vbscript)。我想通过char迭代unicode字符串char,获取每个符号的代码,将代码截断为字节范围[0..255]并创建字节数组。 这样,与原始unicode字符串相比,新的字节数组在内存中应该小两倍。我将通过ADODB.Stream对象将此数组保存到文件中 如何将unicode字符串转换为字节数组,并将符号代码截断为字节范围? 先感谢您!     
已邀请:
首先,将unicode转换为ascii只有在字符串只包含ascii字符时才有效。由于unicode包含ascii,因此只需删除每一个字符即可。 在互联网上查找unicode以获取详细信息。 编辑:在unicode中,每个ascii字符都以NULL(0)字节进行。删除此字节可将字符串转换为ASCII。     
似乎没有办法在vbs中创建字节数组(虽然它在visual basic中非常简单) - 所有数组都是变体数组。 任务是通过字符串类型将二进制流从服务器发送到vbs脚本。我通过在CDATA部分的服务器上创建Xml Document来找到解决方案,该部分包含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
    
此函数创建一个字节数组:
' 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
    

要回复问题请先登录注册