C# 将字节数据转换为字符串输出,就像在十六进制编辑器中一样

C# 将字节数据转换为字符串输出,就像在十六进制编辑器中一样,c#,hex,hex-editors,C#,Hex,Hex Editors,我正在寻找一种方法,它将返回字节数据的字符串表示形式,就像十六进制编辑器一样。 它应该有一个参数,即byte[],并返回string,如下所示: 此方法应正确处理转义字符、null和对齐文本。 我想在Debug.WriteLine()中使用它。 请帮我做这个!谢谢 更新: 好啊谢谢大家。下面是Darin Dimitrov提供的一个现成解决方案的链接,请尝试以下操作: byte[] b1 = ... string h = System.Text.Encoding.UTF8.GetStr

我正在寻找一种方法,它将返回字节数据的字符串表示形式,就像十六进制编辑器一样。 它应该有一个参数,即
byte[]
,并返回
string
,如下所示:

此方法应正确处理转义字符、null和对齐文本。 我想在Debug.WriteLine()中使用它。 请帮我做这个!谢谢

更新: 好啊谢谢大家。下面是Darin Dimitrov提供的一个现成解决方案的链接,请尝试以下操作:

  byte[] b1 = ...

  string h = System.Text.Encoding.UTF8.GetString(b1);
您可以使用以下方法:


我想你需要澄清一下。你有两个答案,虽然正确,但回答不同的问题。您试图从字节[]获取十六进制显示还是纯文本?两种?@vcsjones
字节数据的字符串表示法
。myne分析字节并返回字符串。这不是需要的。它将只返回一个简单字符串,其中所有字节都将转换为其字符表示形式。示例:“\r”� �\0\a�(C)��\a9��s�P��T�m、 K�9��yΪM|“@NazarGrynko尝试使用ASCII。此命令应返回字节的字符串表示形式。尝试使用System.Text.Encoding.ASCII.GetString(b1);。@NazarGrynko更改为Asciyes,我知道。但我需要将其格式化为我发布的屏幕截图中的格式。每行应包含16个十六进制字符(b1[0]。ToString(“X2”))超过16个字符(这是Encoding.UTF8.GetString和Encoding.ACSII.GetSting返回的内容)。在一行的结尾“\n”是的。但我需要在每16个字节后使用ASCII表示。就像这样。41 41 41 41 41 41 41 41 41 41 00 41 41 41 aaaaaaaaaaaaaaa.aaaa59 59 59 00 59 59 59 59 59 59 59 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy这个:@dardinmitrov是你的博客吗?这就是我要找的!谢谢!
public static string ToString(byte[] buffer)
{
    return BitConverter.ToString(buffer);
}