Avatar ·

Wie erhalte ich eine einheitliche Byte-Darstellung eines Strings in C#, ohne manuell eine Kodierung anzugeben?

Hallo zusammen! Ich bin neu in C# und bin auf ein Problem gestoßen, das mich verwirrt hat. Ich muss Strings über das Netzwerk senden und hashen, aber mir ist aufgefallen, dass das Ergebnis unterschiedlich sein kann, wenn ich einen String in ein Byte-Array konvertiere, je nach Computer.

Hier ist ein Beispiel meines Codes:

string message = "Привет, мир!";\nbyte[] bytes = Encoding.Default.GetBytes(message);\n// Sende bytes über das Netzwerk oder berechne Hash\n

Das Problem ist, dass Encoding.Default je nach Systemsprache unterschiedliche Ergebnisse liefert. Auf meinem Windows mit russischer Sprache funktioniert es, aber auf einem Server mit englischer Sprache nicht. Ich habe gelesen, dass Encoding.ASCII Zeichen verliert und Encoding.Unicode ein BOM (Byte Order Mark) hinzufügt, das alles durcheinanderbringt.

Ich brauche eine