C# 将非字符串二进制代码转换为纯文本16位

C# 将非字符串二进制代码转换为纯文本16位,c#,C#,你好 如何将相同的二进制数据转换为纯文本。我认为有16个字节的行 必须是 000006F0 DB 4D D9 94 B7 F0 F9 C9 70 F1 D3 7C E3 EC 65 93 .M......p..|..e. 00000700 18 66 FD 0E C1 B9 78 BE 83 14 B0 E0 76 27 3C 69 .f....x.....v'<i 00000710 5F 18 19 FF 5C AC 15 24 84 CF BC F9 F1 04 56

你好

如何将相同的二进制数据转换为纯文本。我认为有16个字节的行

必须是

000006F0  DB 4D D9 94 B7 F0 F9 C9 70 F1 D3 7C E3 EC 65 93    .M......p..|..e.
00000700  18 66 FD 0E C1 B9 78 BE 83 14 B0 E0 76 27 3C 69    .f....x.....v'<i
00000710  5F 18 19 FF 5C AC 15 24 84 CF BC F9 F1 04 56 06    _...\..$......V.
00000720  4A 45 07 6D 8B 9F 96 51 8C E7 FE 98 B7 32 87 F6    JE.m...Q.....2..
00000730  94 0B 3F 09 BB 15 E5 9F D3 B2 4D 40 03 DE 23 B2    ..?.......M@..#.
00000740  84 6C 39 37 15 C6 4D 0E 02 57 0B B2 AC 69 A8 7C    .l97..M..W...i.|
00000750  A4 71 D8 DB CF 52 28 10 6C 3C 3E A2 59 B0 CD CF    .q...R(.l<>.Y...
00000760  34 6B D9 9D 7E 5A D3 49 32 E5 91 97 2C AC 40 F2    4k..~Z.I2...,.@.
00000770  8C 15 25 92 07 DE A7 B2 72 22 84 6B CD 33 56 D5    ..%.....r".k.3V.
00000780  72 16 78 5F AD DB FC 12 AE 7D BB 80 AA AE DE 8A    r.x_.....}......
另一件事是WPF中的文本框。我的文本中没有返回(\n)。但WPF文本框显示的文本如下:

02c0    90 8F F9 B4 16 D6 63 C2 22 0D 7A FD 3E 6A C1 55     ?????c?"z?>j?U
02e0    E8 BA A6 B2 55 D1 2E 95 D1 83 22 C0 CB 64 00 AA     ????U?.
???"??d?
0300    E3 21 49 A0 E2 B2 DC 0E 36 C2 04 4B 97 C7 58 35     ?!I????6?K??X5

ASCII仅包含一个字节中可能包含的值的子集,因此ASCII范围之外的任何内容都将显示为各种垃圾,具体取决于您机器的默认字符集

您只需要用一些可见字符替换0x20以下和0x7F以上的字节值。(您想要的时间段)


ASCII仅包含一个字节中可能包含的值的子集,因此ASCII范围之外的任何内容都将显示为各种垃圾,具体取决于您机器的默认字符集

您只需要用一些可见字符替换0x20以下和0x7F以上的字节值。(您想要的时间段)


现在还不清楚你想要实现什么。。。二进制文件应如何表示为文本?十六进制代码?请显示一些代码。不清楚您想要实现什么。。。二进制文件应如何表示为文本?十六进制代码?请显示一些代码您可能希望将范围缩小一,因为ASCII 0x7f也不可打印。您可能希望将范围缩小一,因为ASCII 0x7f也不可打印。
02c0    90 8F F9 B4 16 D6 63 C2 22 0D 7A FD 3E 6A C1 55     ?????c?"z?>j?U
02e0    E8 BA A6 B2 55 D1 2E 95 D1 83 22 C0 CB 64 00 AA     ????U?.
???"??d?
0300    E3 21 49 A0 E2 B2 DC 0E 36 C2 04 4B 97 C7 58 35     ?!I????6?K??X5
public static class ByteArrayExt {
    public static byte[] ToASCIIFriendlyArray(this byte[] data) {
        byte[] result = new byte[data.Length];
        for (int i=0;i<data.Length;i++)
            result[i] = b >= 0x20 || b < 0x79 ? b : '.';
        return result;
    }
}
Encoding.ASCII.GetString(data.ToASCIIFriendlyArray());