2014-11-02 61 views
1

我期待这段代码转换为C#:AS3 ByteArray的C#的bytearray

 var local1:ByteArray= new ByteArray(); 
     var auth:String = root.loaderInfo.parameters.auth as String; 
     var key0:String = root.loaderInfo.parameters.key0 as String; 
     var key1:String = root.loaderInfo.parameters.key1 as String; 
     var key2:String = root.loaderInfo.parameters.key2 as String; 
     var key3:String = root.loaderInfo.parameters.key3 as String; 


     local1.writeUnsignedInt(parse(auth)); 
     local1.writeUnsignedInt(parse(key0)); 
     local1.writeUnsignedInt(parse(key1)); 
     local1.writeUnsignedInt(parse(key2)); 
     local1.writeUnsignedInt(parse(key3)); 
     trace(local1) 

你看我怎么直接打印的字节数组,而不将其转换为字符串。你怎么能在c#中做到这一点?假设打印出如下内容:TV〜3 R j i

回答

0

如果数组包含可以解释为字符代码的内容,则可以将字节解码为文本。例如:

string localText = Encoding.Default.GetString(local1); 

要使用的编码取决于文本如何转换为字节。

您可以使用MemoryStreamBinaryWriter将整数放入数组中。例如:

string auth = "1"; // example data, would come from your object 
string key0 = "2"; 

byte[] local1; 
using (MemoryStream m = new MemoryStream()) { 
    using (BinaryWriter w = new BinaryWriter(m)) { 
    w.Write(Int32.Parse(auth)); 
    w.Write(Int32.Parse(key0)); 
    } 
    local1 = m.ToArray(); 
} 

foreach(var g in local1) 
{ 
    Console.WriteLine((char)g); 
} 
+0

所有进入字节数组的数字都被转换为无符号整数。 var auth:String和其他字符串 – Mark 2014-11-02 19:37:57

+0

@Mark:我明白了。我添加了将整数放入字节数组的示例代码。 – Guffa 2014-11-03 00:51:10

+0

谢谢我让它工作。不得不使用字符串g =(char)字节; – Mark 2014-11-03 21:12:28