【问题标题】:String to HEX byte array字符串到 HEX 字节数组
【发布时间】:2015-07-17 10:10:01
【问题描述】:

我喜欢将 String 转换为 HEX 字节数组。

从类似“示例”的内容到 byte[] exampleconv = {0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65}(来源:http://www.asciitohex.com/)。

我也在 stackoverflow 上搜索示例,但大多数示例将代码从字符串转换为十进制字节数组或类似的。我没有找到任何工作!将字符串转换为十六进制字节数组的示例(如上面的 exampleHEX 所示)。

【问题讨论】:

  • 没有十六进制字节数组这样的东西。一个字节就是一个字节。如何显示字节值(例如二进制、八进制、十进制、十六进制)取决于您。
  • 字节本质上既不是十六进制也不是十进制。您可以将其值显示为十六进制数的十进制数。此外,在将字符串转换为字节时,您需要了解要使用的字符编码。对于非常基本的英语语言,ASCII 通常会很好,但如果你想要其他语言的字符或特殊字符(如表情符号),那么你会想要使用 unicode 之类的东西。
  • 我知道不是这样的,我喜欢只代表我什么。误会了抱歉:)
  • 那你的问题是什么?请参阅Converting a string to byte-array without using an encoding (byte-by-byte) 从字符串中获取字节数组,请参阅How do you convert Byte Array to Hexadecimal String, and vice versa? 以将该字节数组打印为十六进制...
  • Converting string to byte array in C# 的可能重复项,只是它需要另一个步骤 - 将字节数组转换为其字符串表示形式。

标签: c# hex bytearray


【解决方案1】:

使用Encoding.Default.GetBytes 获取字节数组。示例代码:

byte[] ba = Encoding.Default.GetBytes("example");
// jsut to Display
var hexString = BitConverter.ToString(ba);
Console.WriteLine(hexString);

你会得到“65-78-61-6D-70-6C-65”

【讨论】:

  • 根据字符串内容,Encoding.Default 可能不是要走的路。
【解决方案2】:

字节数组以二进制形式存储,无论它们如何呈现给消费者。

如果您考虑读取数组的格式,而不是存储在数组中的数字类型,您会获得更多的运气。

【讨论】:

    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多