@DocShoe sagte in Konsolen-Ausgaben unter Windows 7 und 8.1 (Encoding):
Wie startest du denn den Programm?
Jetzt habe ich es gefunden - das wusste ich eigentlich schon von einem anderen Programm, habe aber nicht gleich daran gedacht.....
CHCP 65001 - ist die eine Sache.
ABER => man muss im CMD-Fenster bei WIndows 7 und 8.1 die Schriftart auf eine umstellen, die auch UTF8 darstellen kann.
Voreingestellt ist = Rasterschriftart.
Das muss man ändern in => Lucia Console
Mein kleines Testprogramm sieht jetzt so aus und funktioniert:
using System;
using System.Reflection;
using System.Text;
using System.Management;
namespace ConsoleNET472Vm81
{
internal class Program
{
public static int WinVer = 0; //Windows-Version = 7, 81, 10, 11 oder 0 = nicht erkannt
static void Main(string[] args)
{
WinVer = GetOperatingSystem(); //Windows-Version = 7, 81, 10, 11 oder 0 = nicht erkannt
string Text =
"Fröhliches Ostern\n" +
"auf der grünen Wiese\n" +
"Eintritt: 5,00 €\n" +
"x²+y² = z²\n" +
"2³ = 8\n"+
"äöüß AÖÜ € @ °";
if ((WinVer == 10) || (WinVer == 11))
{
Console.OutputEncoding = Encoding.Default;
Console.InputEncoding = Encoding.Default;
}
Console.WriteLine(Text);
Console.ReadLine();
} // Main
//===================================================================
// Ermitteln, unter welchem Windows das Programm läuft
//===================================================================
static int GetOperatingSystem()
{
ManagementScope scope = new ManagementScope("root\\CIMV2");
SelectQuery query = new SelectQuery("Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject item in searcher.Get())
{
string sCaption = (string)item.Properties["Caption"].Value; // Operating System
if (sCaption.Contains("Microsoft Windows 11")) return 11;
if (sCaption.Contains("Microsoft Windows 10")) return 10;
if (sCaption.Contains("Microsoft Windows 8.1")) return 81;
if (sCaption.Contains("Microsoft Windows 7")) return 7;
}
return 0; // kein Windows 7, 8.1, 10 oder 11 gefunden
} // GetOperatingSystem()
}
}
Und schon können UTF8-Zeichen, wie das €-Zeichen angezeigt werden.
Auch unter Windows 7 klappt es...
Link Text