生成特定大小的字符串字节

问题描述 投票:1回答:1

我有这段代码,它能产生80字节的 "管理员 "字样,并输出到下面的结果。

 szOperatorName = BitConverter.ToString(data, 45, data.Length - 45); //szOperatorName is set to 'Administrator'
byte[] OperatorName = new byte[80];

Array.Copy(Encoding.ASCII.GetBytes(szOperatorName), OperatorName, System.Math.Min(80,szOperatorName.Length));

输出

预期输出

41 00 64 00 6d 00 69 00 6e 00 69 00 73 00 74 00 72 00 61 00 74 00 6f 00 72 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

我已经强调了两个之间的一些主要的deference,任何帮助得到预期的结果将是非常感激。

c# hex byte
1个回答
1
投票

为了得到预期的输出,使用Unicode编码来获取字节。

Encoding.Unicode.GetBytes(szOperatorName)

测试

byte[] bytes = System.Text.Encoding.Unicode.GetBytes("Administrator");
foreach (var b in bytes)
    Console.WriteLine(b);

. . . .
Array.Copy(bytes, newArr, bytes.Length);

您目前的输出是基于ASCII编码的(很明显)。

© www.soinside.com 2019 - 2024. All rights reserved.