Отличить числовые байты от строки utf-8 - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Подскажет, как в шарпе отличить числовые байты от строки utf-8? Вообщем, у меня есть сокет, в который приходит массив байт такого вида: <ushort><byte><data> (2, байта, 1 байт, остальные байты..) Мне надо обработать такую ситуацию, когда вместо первых 3 числовых байт, будет utf-8 строка: <policy-file-request/> (Или её часть) Вот как это лучше сделать? Спасибо!
Что-то вроде этого?
byte[] buffer    = new byte[ socket.Available ];
 
socket.Receive( buffer );
 
Console.WriteLine( "Это похоже на utf-8? " + Encoding.UTF8.GetString(buffer) );
Или можно как-то более красиво проверить первые три байта, на предмет их отношения к utf-8?

Решение задачи: «Отличить числовые байты от строки utf-8»

textual
Листинг программы
bool IsUTF8(byte[] data)
{
    var utf8 = new UTF8Encoding(false, true);
    try
    {
        string s = utf8.GetString(data);
        return true;
    }
    catch { }
    return false;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5