Laden...

Hex-String zu lesbaren String konvertieren

Erstellt von Alf Ator vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.796 Views
A
Alf Ator Themenstarter:in
764 Beiträge seit 2007
vor 9 Jahren
Hex-String zu lesbaren String konvertieren

Hallo liebe Forenteilnehmer,

ich versuche einen Hex-String in einen lesbaren String umzuwandeln.
Ich habe dafür die Funktion Convert.ToString versucht. Es werden aber
immer noch nur die Hex-Werte angezeigt.

Wie kann ich das denn Konvertieren?


string hexString = "45 72 73 74 65 72 21 20 56 69 65 6c 65 6e 20 44 61 6e 6b 20 66 fc 72 20 64 69 65 20 48 69 6c 66 65 20 75 6e 64 20 6c 69 65 62 65 20 47 72 fc df 65 20 61 6e 20 64 61 73 20 46 6f 72 75 6d 2e";
string result = Convert.ToString(hexString);
Console.WriteLine(result);

Viele Grüße, Alf

T
2.219 Beiträge seit 2008
vor 9 Jahren

Du müsstest den String splitten bzw. die einzelnen Bytes rausparsen.
Dann musst du das Byte Array per Encoding.ASCII/Default/UTF8 oder welchen Zeichensatz auch immer du benötigst, mit GetString umwandeln.

Dein Convert.ToString macht hier ja kaum Sinn, da dein String schon ein String ist 😃

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

P
1.090 Beiträge seit 2011
vor 9 Jahren

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

F
10.010 Beiträge seit 2004
vor 9 Jahren

Naja, erstmal solltest du daraus ein Bytearray machen und dann den string.

A
Alf Ator Themenstarter:in
764 Beiträge seit 2007
vor 9 Jahren

Hallo,

ich habe das jetzt folgendermaßen gelöst:


static void Main(string[] args)
{
    string hexString = "45 72 73 74 65 72 21 20 56 69 65 6c 65 6e 20 44 " +
                        "61 6e 6b 20 66 fc 72 20 64 69 65 20 48 69 6c 66 " +
                        "65 20 75 6e 64 20 6c 69 65 62 65 20 47 72 fc df " +
                        "65 20 61 6e 20 64 61 73 20 46 6f 72 75 6d 2e ";
    string convertedHexString = ConvertHexStringToString(hexString);

    Console.WriteLine(convertedHexString);
    Console.ReadLine();
}

private static string ConvertHexStringToString(string hexString)
{
    string result = "";

    foreach (string hexPart in hexString.Trim().Split(' '))
    {
        result += ConvertHexPartToString(hexPart);
    }

    return result;
}

private static string ConvertHexPartToString(string hexPart)
{
    int value = Convert.ToInt32(hexPart, 16);
    return Char.ConvertFromUtf32(value);
}

Der Ergebnisstring ist übrigens folgender:

Erster! Vielen Dank für die Hilfe und liebe Grüße an das Forum.