Как лучше всего получить правильное сравнение байтового массива?C#

Место общения программистов C#
Ответить
Anonymous
 Как лучше всего получить правильное сравнение байтового массива?

Сообщение Anonymous »

на самом деле я хочу получить правильную кодировку текста, поэтому я пишу код:
Мне нужно сравнить массив байтов кодировки и получить правильное сравнение, а затем узнать, что это такое.
но их много, и мне придется написать так много, если еще.
что мне делать?
private static string GetName(char str)
{
var d= "";
var bytes = System.Text.Encoding.Unicode.GetBytes(str.ToString());

if (IsSec(bytes, [00, 00], [00, 0xff]))
{

d= "latin";
}
else if (IsSec(bytes, [0x01, 0x00], [0x02, 0x4f]))
{

d= "lating";
}
else if (IsSec(bytes, [0x02, 0x50], [0x02, 0xaf]) || IsSec(bytes, [0x1d, 0x00], [0x1d, 0x8f]))
{

d= "s";
}
else if (IsSec(bytes, [0x02, 0xb0], [0x02, 0xff]) || IsSec(bytes, [0xa7, 0x00], [0xa7, 0x1f]))
{

d= "df";
}
else if (IsSec(bytes, [0x03, 0x00], [0x03, 0x6f]) || IsSec(bytes, [0x1d, 0xc0], [0x1d, 0xff]))
{
d= "df";
}
else if (IsSec(bytes, [0x03, 0x70], [0x03, 0xff]))
{

d= "ssd";
}
.. . . . . . .//I have delete the codes here

return fontName;
}

private static bool IsSec(byte[] v, byte[] start, byte[] end)
{
if (BitConverter.IsLittleEndian)
{
Array.Reverse(v);
Array.Reverse(start);
Array.Reverse(end);
}
int v1 = BitConverter.ToInt32(v, 0);
int start1 = BitConverter.ToInt32(start, 0);
int end1 = BitConverter.ToInt32(end, 0);

return v1 >= start1 && v1

Подробнее здесь: https://stackoverflow.com/questions/798 ... byte-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»