如何将普通字符串转换为十六进制的等效字节数组?
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 是一组非常有限的字符。
只需在此处探索您的选择:
我的问题是如何转换,
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 是一组非常有限的字符。
只需在此处探索您的选择: