字符串到长字节数组中的ascii

时间:2013-08-29 12:24:07

标签: c# string ascii

我想将字符串转换为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

我怎样才能做到这一点?

1 个答案:

答案 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也可以。