Was ist die beste Vorgehensweise, um den richtigen Vergleich des Byte-Arrays zu erzielen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Was ist die beste Vorgehensweise, um den richtigen Vergleich des Byte-Arrays zu erzielen?

Post by Anonymous »

Eigentlich möchte ich die richtige Kodierung des Textes erhalten, also schreibe ich den Code:
Ich muss das Byte-Array der Kodierung vergleichen und den richtigen Vergleich erhalten und dann wissen, was es ist.
aber es gibt viele und ich muss sonst so viele schreiben.
Was soll ich tun?

Code: Select all

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post