如何将普通字符串转换为十六进制的等效字节数组?

How to convert a normal string to an equivalent byte array in hex?

我的问题是如何转换,

string s = "Hello World";

进入

byte b = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64};

如果在 C# .NET Core 中有直接的方法,那将非常有帮助。

短语“十六进制字节数组”毫无意义;字节就是字节——它们没有任何固有格式,例如十进制、十六进制、八进制:它们只是值

不过,你想要的大概是:

byte[] bytes = Encoding.UTF8.GetBytes(s);

得到hex,然后可以用工具重新得到一个字符串,例如:

string hex = BitConverter.ToString(bytes);

如果您说您想要给定字符串的字节数组,则必须指定字节数组应以何种方式表示字符串。这称为 encoding,.NET 框架有一个内置库 (System.Text.Encoding) 用于处理字符串编码操作。

例如,为了得到字符串作为 ASCII 表示,使用这个:

byte[] bytes = Encoding.ASCII.GetBytes(someString);

当然,ASCII 是一组非常有限的字符。

只需在此处探索您的选择:

Microsoft .NET documentation: Encoding Class