Gateway_man Geschrieben 17. März 2010 Geschrieben 17. März 2010 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 Zitieren
Pointerman Geschrieben 17. März 2010 Geschrieben 17. März 2010 (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 17. März 2010 von Pointerman Zitieren
Gateway_man Geschrieben 17. März 2010 Autor Geschrieben 17. März 2010 Vielen Dank pointerman, hatte die ganze Zeit voll die Geistige Blockade. :D Zitieren
Gateway_man Geschrieben 18. März 2010 Autor Geschrieben 18. März 2010 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 Zitieren
TDM Geschrieben 19. März 2010 Geschrieben 19. März 2010 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. Zitieren
Empfohlene Beiträge
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.