【问题标题】:Hexadecimal to plain text conversion in c# [duplicate]c#中的十六进制到纯文本转换[重复]
【发布时间】:2021-05-15 01:32:37
【问题描述】:

我需要将字节数组转换为可读的纯文本字符串。我查看了这个How do you convert a byte array to a hexadecimal string, and vice versa?,但它会将其转换为ASCII 格式的十六进制字符串。我正在寻找一个等价的纯文本字符串。

即当您使用本网站https://codebeautify.org/hex-string-converter 时,您应该能够发布您的十六进制文本并获得转换后的字符串。

以这个十六进制字符串为例:47617465776179536572766572,纯文本输出是GatewayServer我想在代码中实现这一点..我的数据包数据以字节数组的形式出现。

【问题讨论】:

  • 这只是获取字节数组并将其转换为十六进制。我需要等价的纯文本字符串..

标签: c# hex


【解决方案1】:

简单的 Linq 似乎就足够了:我们提取 ascii 代码:47, 61, 74, ... 72 将它们转换为 chars 最后是 @ 987654326@所有这些字符都变成string

代码:

  using System.Linq;
  using System.Globalization;
  ...

  string source = "47617465776179536572766572";

  string result = string.Concat(Enumerable
    .Range(0, source.Length / 2)
    .Select(i => (char)int.Parse(source.Substring(2 * i, 2), NumberStyles.HexNumber)));

  // Let's have a look
  Console.Write(result);

结果:

  GatewayServer

【讨论】:

    【解决方案2】:

    你可以这样做

    var encodedString = System.Text.Encoding.Default.GetString(byteArray);

    【讨论】:

      猜你喜欢
      • 2013-06-13
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 2018-01-12
      • 2016-12-27
      • 2018-03-08
      • 2017-12-30
      • 1970-01-01
      相关资源
      最近更新 更多