Zum Inhalt springen

VB.NET Konvertierung eines Hexadezimal Strings


Empfohlene Beiträge

Geschrieben

Hallo,

Folgenden Sachverhalt:

Ich habe einen String welchen ich mir aus einer Datei ausgelesen habe.

Diesen habe ich in Hexadezimal umgewandelt. (Das ursprungsformat ist UTF- 8)

Das sieht in etwa so aus:


    Dim hex As String

            readbyte = fsmsource.Read(buffer, 0, buffer.Length) 

'readbyte ist ein Filestream

            hex = BitConverter.ToString(buffer, 0, 3)

Es handelt sich hierbei immer um folgende Zeichen in Hexadezimaler ansicht:

EF-BB-BF

Also quasi 3 Byte

So nun möchte ich aber ebenen diesen String welcher nun die hexadezimalen Zahlen enthält, wieder zurück in die UTF Zeichen konvertieren.

Hat jemand eine Idee?

Lg

Gateway

Geschrieben (bearbeitet)

Moin!

VB ist nicht so mein Metier, aber da ich .net so gern mag hab ich mal etwas zusammengebastelt:

        Dim hex As String
hex = "C3-A4-45"
Dim characters(0 To 2) As String
Dim bytes(0 To 2) As Byte
characters = hex.Split("-")
For element As Integer = 0 To 2
bytes(element) = Byte.Parse(characters(element), Globalization.NumberStyles.HexNumber)
Next
Dim convertedHex As String = System.Text.UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length)[/PHP]

Zur Erklaerung:

Du hast Deinen String mit Hex-Werten, den Splittest Du nach dem Trennzeichen "-". Damit bekommst Du dann ein String-Array, das die Hexcodes enthaelt.

Die einzelnen Hexcodes werden dann in Bytes umgewandelt und in ein Byte-Array geschrieben.

Schliesslich wird das Byte-Array in den Unicode-String gewandelt.

Bearbeitet von Pointerman
Geschrieben

Vielleicht noch eine Frage zu eben diesen Thema.

Hat hier vielleicht schonmal jemand herausgefunden, wie man im .NET von einem unbekannten Text in einer Datei die jeweile Codepage rausbekommt und somit auch die richtige Kodierung wählt?

Also mit den Methoden aus dem System.Text Namespace funktioniert es soweit ich weiß nicht :( .

Rein Theoretisch könnte man diese Info ja dem Header des Textes entnehmen, nur leider ist nicht immer ein Header vorhanden und somit ist mein Lösungsansatz nicht alltagstauglich.

lg und einen schönen sonnigen Tag wünsch ich noch ;)

Gateway

Geschrieben

Hat hier vielleicht schonmal jemand herausgefunden, wie man im .NET von einem unbekannten Text in einer Datei die jeweile Codepage rausbekommt und somit auch die richtige Kodierung wählt?

Also mit den Methoden aus dem System.Text Namespace funktioniert es soweit ich weiß nicht :( .

Detecting File Encodings in .NET

.NET doesn't provide a native mechanism to do this so you must do it manually using code similar to that above.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...