Wie behebe ich unterschiedliches Encoding in C# Anwendungen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Konsole (und damit Konsolenanwendungen) und die grafische Oberfläche (und damit WinForms-Anwendungen) verwenden standardmäßig verschiedene Kodierungen (vermutlich ein Relikt aus der Windows-95-Zeit).

Da muss man die Kodierungen der Streams explizit angeben.

Auf die Schnelle habe ich einen Lösungsvorschlag hier gefunden: https://deviorel.wordpress.com/2015/01/16/getting-the-right-output-of-child-console-applications-in-c/


DatLicht 
Fragesteller
 29.04.2024, 15:50

Wow, das hat funktioniert. Nachdem ich mit hin und her encoden/decoden des Strings selbst gefühlt ewig experimentiert habe, wäre ich nicht unbedingt auf die Idee gekommen, der Ausführung auf der Konsole selbst die Parameter mitzugeben. Manchmal tut's gut, einen Schritt zurück zu machen, weil man den Wald vor lauter Bäumen nicht sieht. Vielen Dank :)

0

Kodierungen kannst du mit der Encoding Klasse ändern.

Um z.B einen ASCII Text in UTF-8 umzuwandeln kannst du folgendes machen:

byte[] asciiBytes = Encoding.ASCII.GetBytes("Ein ASCII string.");
string utf8String = Encoding.UTF8.GetString(asciiBytes);
Woher ich das weiß:Hobby – Ich programmiere seit 3 Jahren mit C#

DatLicht 
Fragesteller
 29.04.2024, 15:53

Vielen Dank für deine Antwort. Mit dem String-Encoding habe ich schon eine gefühlte Ewigkeit herumprobiert, bin aber iwie trotzdem nicht zu einer Lösung gekommen. Aber vielleicht ist die durch meine Unit Tests gesteuerte Konsolenanwendung auch etwas eigen, so dass deine Lösung wahrscheinlich überall anders, aber nur nicht hier funktioniert ;) Aber trotzdem vielen Dank für deine Antwort, vielleicht hilft sie ja doch noch jemand anderem.

0