Как сравнить байт [] со строкой?

2

Я хочу сравнить первые несколько байтов в байте [] со строкой. Как я могу это сделать?

  • 0
    Можете ли вы привести пример того, что вы пытаетесь сделать?
Теги:
string
bytearray

2 ответа

8
Лучший ответ

Вы должны знать кодировку массива байтов, чтобы правильно сравнивать их.

Например, если вы знаете, что ваш массив байтов состоит из байтов UTF-8, вы можете создать строку из массива байтов:

System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string s = enc.GetString(originalBytes);

Теперь вы можете сравнить строку s с другой строкой.

И наоборот, если вы хотите сравнить только первые несколько байтов, вы можете преобразовать строку в массив байтов UTF8:

System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
byte[] b = enc.GetBytes(originalString);

Теперь вы можете сравнить массив байтов b с другим массивом байтов.

Существует несколько других объектов кодирования для ASCII, Unicode и т.д. Здесь смотрите страницу MSDN.

  • 0
    Разве не эффективнее сравнивать байты вместо строк ?!
  • 0
    +1 Хорошее редактирование;)
Показать ещё 3 комментария
1

использование

byte [] fromString = Encoding.Default.GetBytes("helloworld");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню