Что делать с кодировкой Tcp-пакета (PacketDotNet)? С помощью SharpPcap перехватываю пакеты. Имеется такой код:// Когда приходит пакет, вызывается это событие private static void Program_OnPacketArrival(object sender, CaptureEventArgs e) { Packet packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data); TcpPacket tcp = (TcpPacket)packet.Extract(typeof(TcpPacket)); if (tcp != null) { byte[] data = tcp.PayloadData; Console.WriteLine(Encoding.UTF8.GetString(data)); // Внимание сюда } } Когда обращаюсь в браузере к google.com, печатается такое ???N?O?????? ???X?QO QC?\?????lD??Y.I??1a????X?n_qMC?J?0?????Iz???e?~??? lu? w?=???{?q?y'}???(?(??5?:?@?18p7'8??M?&?????'???3?dk????h?i????ZYx%D?!?C_ ???+?M~?????#?&?1????j-?^r?PLZNWWI?]?m?&C????se?9??.??:???f[????/J??f?KJ???:?\ ???9??w???vt@f ? ?a4^"???????_????_T??Ec?5??=??3??]E?x? ???v????;????m??r???0?,??GG?!?d?w?'???Z; ?pV??J?z?"??4n?ku?I???O{xA?t???@??S?.5Gb?Ja?A?Z??V??v????|o?4r??^K@.L M??t?M,???$Ck?W?@H?v??s?Sp?K?R?f *?9?[?1:?/ 7/?uG?Пробовал разные кодировки: ASCII, BigEndianUnicode, Unicode, UTF8/7/32, windows-1251, но осмысленного текста не получаю. Подскажите пожалуйста, что я не так делаю?
Проблема может быть связана с тем, что данные в PayloadData могут быть зашифрованы или сжаты. Попробуйте сначала проверить, не зашифрованы ли данные или используется ли сжатие.
Если данные не зашифрованы и не сжаты, то можно попробовать следующие варианты:
Попробуйте использовать различные кодировки и смотрите, при какой кодировке текст выглядит более осмысленным.Используйте другие методы для конвертации байтов в строку. Вместо Encoding.UTF8.GetString(data) вы можете попробовать использовать BitConverter.ToString(data) для преобразования байтов в шестнадцатеричное представление. Попробуйте использовать Wireshark для анализа и декодирования пакетов, чтобы убедиться, что данные действительно содержат текстовую информацию.
Если вы все равно не можете получить осмысленный текст, возможно, данные могут быть зашифрованы или сжаты другим способом, и вам потребуется разобраться в методах шифрования/сжатия данных, используемых в вашем случае.
Проблема может быть связана с тем, что данные в PayloadData могут быть зашифрованы или сжаты. Попробуйте сначала проверить, не зашифрованы ли данные или используется ли сжатие.
Если данные не зашифрованы и не сжаты, то можно попробовать следующие варианты:
Попробуйте использовать различные кодировки и смотрите, при какой кодировке текст выглядит более осмысленным.Используйте другие методы для конвертации байтов в строку. Вместо Encoding.UTF8.GetString(data) вы можете попробовать использовать BitConverter.ToString(data) для преобразования байтов в шестнадцатеричное представление. Попробуйте использовать Wireshark для анализа и декодирования пакетов, чтобы убедиться, что данные действительно содержат текстовую информацию.Если вы все равно не можете получить осмысленный текст, возможно, данные могут быть зашифрованы или сжаты другим способом, и вам потребуется разобраться в методах шифрования/сжатия данных, используемых в вашем случае.