So erhalten Sie CMD / Konsolencodierung in C #

9

Ich muss die richtige Codepage angeben, um die Dateien mit der zip-Bibliothek zu packen. Wie ich sehe, muss ich Konsolencodierung angeben (866 in meinem Fall).

%Vor%

Console.OutputEncoding gibt 1251 zurück, was ich nicht brauche.

Danke,

Alex

Update 1: Offensichtlich führe "mode" in cmd.exe aus und parse Ausgabe sollte funktionieren, aber es scheint zu unhöflich. Ich suche nach .NET-Lösung.

Update 2: Die Anwendung ist eine Windows Forms-Anwendung, keine Konsolen-App.

    
Alex Netkachov 06.05.2011, 11:13
quelle

2 Antworten

15

Die Standard -Codepage für eine App im Konsolenmodus wird durch das Systemgebietsschema bestimmt. Systemsteuerung + Region und Sprache, Registerkarte Verwaltung, Gebietsschema ändern. Ihre Windows-Codepage ist kyrillisch, also ist Ihre Konsolencodepage so, dass die Wahrscheinlichkeit groß ist, dass dieser Code funktioniert:

%Vor%

Vermeide das Schreiben von Code wie dieser, 8-Bit-Text-Codierungen sind ein Minenfeld. Es gibt sicherlich keinen vernünftigen Grund, ein Zip-Programm im Console-Modus zu betreiben. Es gibt viele .NET-Zip-Bibliotheken, die verfügbar sind.

    
Hans Passant 06.05.2011, 12:29
quelle
3

Sie benötigen Encoding.CodePage Eigenschaft:

%Vor%

gibt Ihnen einen Code-Seitenwert (in Ihrem Beispiel 866).

    
Alex 06.05.2011 11:21
quelle

Tags und Links