2012-03-17 64 views

回答

3

如果您在VBScript以尋找等價,您可以使用ADO流做到這一點:

Const adTypeBinary = 1 
Dim adoStr, bytesthroughado 
Set adoStr = CreateObject("Adodb.Stream") 
    adoStr.Charset = "utf-8" 
    adoStr.Open 
    adoStr.WriteText "你好Ğ" 
    adoStr.Position = 0 'reset position 
    adoStr.Type = adTypeBinary 
    adoStr.Position = 3 'skip bom 
    bytesthroughado = adoStr.Read 'get bytes 
    WScript.Echo LenB(bytesthroughado) 'length 
    adoStr.Close 
Set adoStr = Nothing 

這是可能的從VBScript訪問某些.NET組件(從mscorlib程序)。

Dim encoding, bytesthroughdotnet 
Set encoding = CreateObject("System.Text.UTF8Encoding") 
    bytesthroughdotnet = encoding.GetBytes_4("你好Ğ") 'get bytes 
    WScript.Echo LenB(bytesthroughdotnet) 'length 
Set encoding = Nothing 
+0

您如何知道在GetBytes_4中使用「_4」? – Eugene 2012-03-17 21:55:19

+1

@ user389823我增加了後綴,直到找到正確的方法。不幸的是,後綴的順序與.Net重載列表不匹配。我想聽聽有人真的知道。 – 2012-03-17 22:44:28

+0

我在http://stackoverflow.com/questions/9755263/determining-net-method-suffix-number-in-vbscript-com上提出了這個問題。再次感謝,(我最初只上升到_3)! – Eugene 2012-03-18 01:26:29