微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的十六进制到纯文本的转换

如何解决C#中的十六进制到纯文本的转换

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

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

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

解决方法

简单的 Linq 似乎就足够了:我们提取 ascii 代码:476174、... 72 将它们转换进入char,最后将Concat所有这些字符转化为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
,

你可以这样做

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。