C#将字符串转换为ASCII字节

我有一个字符串:

LogoDataStr = "ABC0000" 

我想转换为ASCII字节,结果应该是:

 LogoDataBy[0] = 0x41; LogoDataBy[1] = 0x42; LogoDataBy[2] = 0x43; LogoDataBy[3] = 0x30; LogoDataBy[4] = 0x30; LogoDataBy[5] = 0x30; LogoDataBy[6] = 0x30; 

我试过用这种方式:

 byte[] LogoDataBy = ASCIIEncoding.ASCII.GetBytes(LogoDataStr); 

但我得到的结果是:

 LogoDataBy[0] = 0x41; LogoDataBy[1] = 0x42; LogoDataBy[2] = 0x43; LogoDataBy[3] = 0x00; LogoDataBy[4] = 0x00; LogoDataBy[5] = 0x00; LogoDataBy[6] = 0x00; 

我的编码有什么问题吗?

这段代码

 class Program { static void Main(string[] args) { byte[] LogoDataBy = ASCIIEncoding.ASCII.GetBytes("ABC000"); } } 

产生预期产量

在此处输入图像描述

在读取ASCII字节之前,请仔细检查代码和字符串的值。

扔掉:

 Encoding.ASCII.GetBytes("ABC0000").Dump(); 

进入LinqPAD给出(十进制)的输出:

Byte [](7件物品)
65
66
67
48
48
48
48

所以我不确定你是怎么得到0x00的……

  class CustomAscii { private static Dictionary dictionary; static CustomAscii() { byte numcounter = 0x30; byte charcounter = 0x41; byte ucharcounter = 0x61; string numbers = "0123456789"; string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string uchars = "abcdefghijklmnopqrstuvwxyz"; dictionary = new Dictionary(); foreach (char c in numbers) { dictionary.Add(c, numcounter++); } foreach (char c in chars) { dictionary.Add(c, charcounter++); } foreach (char c in uchars) { dictionary.Add(c, ucharcounter++); } } public static byte[] getCustomBytes(string t) { int iter = 0; byte[] b = new byte[t.Length]; foreach (char c in t) { b[iter] = dictionary[c]; //DEBUG: Console.WriteLine(b[iter++].ToString()); } return b; } } 

我就是这样做的。 JUST IF Encoding.ASCII.GetBytes()会返回错误的值。