Wie erhalte ich eine konsistente Byte-Darstellung eines Strings in C#, ohne explizit eine Kodierung anzugeben?
Hallo! Ich bin ein C#-Anfänger und habe ein Problem mit der Konvertierung von Strings in Bytes. Ich muss String-Daten über das Netzwerk senden und in Dateien speichern, aber ich habe bemerkt, dass die Daten beim Zurücklesen manchmal unterschiedlich sind.\n\nIch habe `Encoding.Default` ausprobiert, aber auf verschiedenen Computern ist das Ergebnis unterschiedlich. Dann habe ich `Encoding.ASCII` versucht, aber es unterstützt keine russischen Buchstaben und andere Unicode-Zeichen. Jetzt mache ich es so:\n\n```csharp\nstring text = "Привет, мир!";\nbyte[] bytes = Encoding.UTF8.GetBytes(text);\nstring restored = Encoding.UTF8.GetString(bytes);\n```\n\nDas funktioniert, aber die Frage ist: Warum muss ich immer explizit `Encoding.UTF8` angeben? Kann .NET nicht selbst die richtige Kodierung bestimmen? Schließlich werden Strings in C# intern bereits in Unicode gespeichert. Warum gibt es keine einfache Methode, um...