Hallo,
Ich serialisiere Instanzen von Klassen mit:
Das funktioniert auch wunderbar. Wie man sieht wird hier das ganze in die Datei try.txt gespeichert.
Ich wollte das ganze nun so umbauen, dass es eben nicht direkt in eine Datei geschrieben wird, sondern in eine String Variable.
Habe das dann so versucht:
Allerdings unterscheidet sich der Inhalt vom String x und dem Text in der Textdatei! Fast so als ob da was beim encoding schief läuft.
In der Datei fängt die erste Zeile bspw. so an:
" ÿÿÿÿ INamcore Studio, Version=0.0.6.45119,..."
In meinem String sieht es dagegen so aus:
" ���� INamcore Studio, Version=0.0.6.45119,..."
Was läuft da also falsch?
Ich serialisiere Instanzen von Klassen mit:
VB.NET-Quellcode
- Try
- Dim fs As Stream = New FileStream(My.Computer.FileSystem.SpecialDirectories.Desktop & "/try.txt", FileMode.OpenOrCreate)
- Dim bf As New BinaryFormatter
- If compression Then fs = New GZipStream(fs, CompressionMode.Compress)
- bf.Serialize(fs, instance)
- fs.Close()
- Catch ex As Exception
- MessageBox.Show(ex.Message, Application.ProductName, _
- MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
Das funktioniert auch wunderbar. Wie man sieht wird hier das ganze in die Datei try.txt gespeichert.
Ich wollte das ganze nun so umbauen, dass es eben nicht direkt in eine Datei geschrieben wird, sondern in eine String Variable.
Habe das dann so versucht:
VB.NET-Quellcode
- Try
- Dim fs As Stream = New MemoryStream()
- Dim bf As New BinaryFormatter
- If compression Then fs = New GZipStream(fs, CompressionMode.Compress)
- bf.Serialize(fs, instance)
- fs.Close()
- Dim s As MemoryStream = fs
- Dim b As Byte() = s.ToArray()
- Dim x As String = UTF8.GetString(b)
- Return x
- Catch ex As Exception
- MessageBox.Show(ex.Message, Application.ProductName, _
- MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
Allerdings unterscheidet sich der Inhalt vom String x und dem Text in der Textdatei! Fast so als ob da was beim encoding schief läuft.
In der Datei fängt die erste Zeile bspw. so an:
" ÿÿÿÿ INamcore Studio, Version=0.0.6.45119,..."
In meinem String sieht es dagegen so aus:
" ���� INamcore Studio, Version=0.0.6.45119,..."
Was läuft da also falsch?