C#中无法将目标字节数组解码为正常字符串,求解方案
字节数组转字符串失败,求识别编码及转换方法
我有一个字节数组,尝试将其转换为字符串但始终失败。在C#中试过多种解码方式:
var stringToByte112 = System.Text.Encoding.UTF32.GetString(bytes, 0, i); var stringToByte11 = System.Text.Encoding.UTF7.GetString(bytes, 0, i); var stringToByte111 = System.Text.Encoding.UTF8.GetString(bytes, 0, i); var stringToByte1111 = System.Text.Encoding.Default.GetString(bytes, 0, i); var stringToByte11110 = System.Text.Encoding.Unicode.GetString(bytes, 0, i); var stringToByte11111 = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
但全部都没成功。我得到的最接近结果如下:
"\u0016\u0003\u0001\u0001\"\u0001\0\u0001\u001e\u0003\u0003A F?4Y'Y???\u0012}?\08?<SF?3B#??S?(?%?\0\0??0?,?(?$?\u0014?\n\0?\0?\0?\0?\0K\0J\0I\0H\09\08\07\06\0?\0?\0?\0??2?.?*?&?\u000f?\u0005\0?\0=\05\0??/?+?'?#?\u0013?\t\0?\0?\0?\0?\0G\0@\0?\0>\03\02\01\00\0?\0?\0?\0?\0E\0D\0C\0B?1?-?)?%?\u000e?\u0004\0?\0<\0/\0?\0A\0\a?\u0011?\a?\f?\u0002\0\u0005\0\u0004?\u0012?\b\0\u0016\0\u0013\0\u0010\0\r?\r?\u0003\0\n\0?\u0001\0\0I\0\v\0\u0004\u0003\0\u0001\u0002\0\n\0\u0010\0\u000e\0\u0017\0\u0019\0\u001c\0\u001b\0\u0018\0\u001a\0\u0016\0#\0\0\0\r\0 \0\u001e\u0006\u0001\u0006\u0002\u0006\u0003\u0005\u0001\u0005\u0002\u0005\u0003\u0004\u0001\u0004\u0002\u0004\u0003\u0003\u0001\u0003\u0002\u0003\u0003\u0002\u0001\u0002\u0002\u0002\u0003\0\u000f\0\u0001\u0001"
我还尝试用以下代码检测编码:
using (StreamReader reader = new StreamReader(new MemoryStream(bytes), detectEncodingFromByteOrderMarks: true)) { text = reader.ReadToEnd(); enc = reader.CurrentEncoding; // 由阅读器自动检测编码 }
这段代码返回UTF8编码,但用UTF8解码后得到的是乱码。
目标字节数组的十六进制表示如下:
"16-03-01-01-22-01-00-01-1E-03-03-99-38-BB-63-4E-10-BB-9D-8A-1D-55-33-5C-29-1B-83-D2-40-76-57-1D-58-95-28-28-37-F0-4F-E8-4C-0E-6C-00-00-AC-C0-30-C0-2C-C0-28-C0-24-C0-14-C0-0A-00-A5-00-A3-00-A1-00-9F-00-6B-00-6A-00-69-00-68-00-39-00-38-00-37-00-36-00-88-00-87-00-86-00-85-C0-32-C0-2E-C0-2A-C0-26-C0-0F-C0-05-00-9D-00-3D-00-35-00-84-C0-2F-C0-2B-C0-27-C0-23-C0-13-C0-09-00-A4-00-A2-00-A0-00-9E-00-67-00-40-00-3F-00-3E-00-33-00-32-00-31-00-30-00-9A-00-99-00-98-00-97-00-45-00-44-00-43-00-42-C0-31-C0-2D-C0-29-C0-25-C0-0E-C0-04-00-9C-00-3C-00-2F-00-96-00-41-00-07-C0-11-C0-07-C0-0C-C0-02-00-05-00-04-C0-12-C0-08-00-16-00-13-00-10-00-0D-C0-0D-C0-03-00-0A-00-FF-01-00-00-49-00-0B-00-04-03-00-01-02-00-0A-00-10-00-0E-00-17-00-19-00-1C-00-1B-00-18-00-1A-00-16-00-23-00-00-00-0D-00-20-00-1E-06-01-06-02-06-03-05-01-05-02-05-03-04-01-04-02-04-03-03-01-03-02-03-03-02-01-02-02-02-03-00-0F-00-01-01"
有人知道这是什么编码吗?该如何将其转换为正常可读的字符串?
内容的提问来源于stack exchange,提问作者Strawberry
相关产品推荐
相关产品推荐

