我想将字符串转换为ascii并将其存储到字节数组中。我知道最简单的方法是
Encoding.ASCII.GestBytes
但我想要的是
byte[] temp = new byte[];
temp = Encoding.ASCII.GestBytes("DEMO1");
因此,当我做
时Console.WriteLine(temp [i])
它应打印出来68 69 77 48 0 0 0 0 0 0 0 0 0 0 0 0而不是68 69 77 48
我怎样才能做到这一点?
答案 0 :(得分:1)
请注意,如果缓冲区太小,则抛出:
byte[] temp = new byte[10];
string str = "DEMO1";
Encoding.ASCII.GetBytes(str, 0, str.Length, temp, 0);
没有与UTF8兼容的简单方法来处理它(因为UTF8具有可变长度的字符)。对于ASCII和其他固定长度编码,您可以:
byte[] temp = new byte[10];
string str = "DEMO1";
Encoding.ASCII.GetBytes(str, 0, Math.Min(str.Length, temp.Length), temp, 0);
或者,通常你可以:
string str = "DEMO1";
byte[] temp = Encoding.ASCII.GetBytes(str);
Array.Resize(ref temp, 10);
即使使用UTF8也可以。