如何解决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 代码:47
、61
、74
、... 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 举报,一经查实,本站将立刻删除。