C# 正在生成具有特定大小的字符串的字节
我有这段代码,它生成80字节的单词“Administrator”来显示输出C# 正在生成具有特定大小的字符串的字节,c#,hex,byte,C#,Hex,Byte,我有这段代码,它生成80字节的单词“Administrator”来显示输出 szOperatorName = BitConverter.ToString(data, 45, data.Length - 45); //szOperatorName is set to 'Administrator' byte[] OperatorName = new byte[80]; Array.Copy(Encoding.ASCII.GetBytes(szOperatorName), OperatorNam
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 64 6D 69 6E 69 73 74 72 61 74 6F 72 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 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 00 00 00 00 00 00 00 00 00 00 00 00
预期产出
410064006D0069006e006900730074007200610074006F00720000
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 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
我已经强调了两者之间的一些主要区别,对于获得预期结果的任何帮助都将不胜感激要获得预期的输出,请使用Unicode编码获得字节
Encoding.Unicode.GetBytes(szOperatorName)
试验
您当前的输出基于ASCII编码(显然)
wordBytes=encoding.ASCII.GetBytes(“管理员”)。。。Array.Copy(wordBytes,newArr,wordBytes.Length)
@T.S.OperatorName是我这里的新变量,它保存生成的字节,您所说的“再次检查”是什么意思这有帮助吗?它看起来几乎像是基于Unicode编码的预期输出,而你使用ASCII。这不起作用。你真了不起,你知道吗?@Pwan这是她昨天说的:-)
byte[] bytes = System.Text.Encoding.Unicode.GetBytes("Administrator");
foreach (var b in bytes)
Console.WriteLine(b);
. . . .
Array.Copy(bytes, newArr, bytes.Length);