2009-07-08 3 views

ответ

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); 

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

Есть несколько других объектов кодировки для ASCII, Unicode и т.д. See the MSDN page here.

+0

Не лучше ли сравнивать байты вместо строк? –

+0

+1 Хорошее редактирование;) –

+0

@Josh: Как вы думаете, что такое сравнение строк? Беспокойство об этом, вероятно, является микрооптимизацией. – jason