Mit chcp erhalten Sie die aktive Codepage.
systeminfo zeigt unter anderem das Systemgebietsschema und das Eingabegebietsschema an.
" Hinweis : Dieser Befehl (systeminfo) ist in Windows 2000 nicht verfügbar. Sie können jedoch Windows 2000-Computer abfragen, indem Sie diesen Befehl auf Windows XP- oder Windows 2003-Computern ausführen und den Remotecomputer auf Windows 2000-Computer einstellen. Wenn sich der aktuelle Benutzer anmeldet, der dies ausführt Der Befehl hat bereits Berechtigungen auf dem Remotecomputer (z. B. Domänenadministratoren). Sie müssen / u und / p nicht verwenden. "
Von hier aus .
Vergessenes Semikolon
quelle
chcp
Sie die aktive OEM -Codepage erhalten. Wie mklement in seiner Antwort feststellt, wird von Windows immer eine andere aktive Codepage verwendet, die ANSI-Codepage. Weitere Informationen finden Sie in der Antwort von mklement .Beachten Sie, dass ein bestimmtes System über zwei aktive Codepages von Interesse verfügt , die durch die Legacy-Einstellung namens language für Nicht-Unicode-Programme bestimmt werden , die früher als Systemgebietsschema bezeichnet wurde (Hintergrundinformationen finden Sie im unteren Abschnitt):
Hinweis: Es gibt zwei weitere Codepages, die jedoch nur noch selten verwendet werden und daher hier nicht behandelt werden: den EBCDIC- Code und die Mac- Codepage (vor OS X) - siehe WinAPI-Dokumente .
Die aktive OEM-Codepage kann am einfachsten über abgerufen werden
chcp
, wie in der hilfreichen Antwort von Forgotten Semicolon gezeigt - vorausgesetzt, sie wurde in der Sitzung mit nicht explizit geändertchcp <codePageNum>
.Das Ermitteln der aktiven ANSI-Codepage ist nicht so einfach, aber PowerShell kann auch beim Ermitteln des Namens und der Sprache des Systemgebietsschemas helfen :
In Windows 8+ / Windows Server 2012+ : Verwenden Sie das
Get-WinSystemLocale
Cmdlet:Hinweis: Die Verwendung ist möglicherweise verlockend, spiegelt
[cultureinfo]::CurrentCulture.TextInfo.ANSICodePage
jedoch nicht unbedingt die systemweit aktive ANSI-Codepage wider . Stattdessen ist es die ANSI-Codepage, die dem Gebietsschema (der Kultur) des aktuellen Benutzers zugeordnet ist und möglicherweise unterschiedlich ist.Auf einem US-englischen System ergibt sich Folgendes:
OEMCP
ist die OEM-Codepage,ACP
die ANSI-Codepage.Eine registrierungsbasierte Methode , die auch auf älteren Systemen bis Windows XP funktioniert :
Auf einem US-englischen System ergibt sich Folgendes:
Wenn Sie auch den [freundlichen] Namen und die LCID des Systemgebietsschemas erhalten möchten (beachten Sie jedoch, dass LCIDs veraltet sind):
Auf einem US-englischen System ergibt sich Folgendes:
Hintergrundinformationen :
Das Systemgebietsschema ist der Legacy-Name für die Sprache, die jetzt beschreibender als Nicht-Unicode-Programme bezeichnet wird (siehe NLS-Terminologie ). Wie die Namen andeuten, gilt Folgendes:
Die Einstellung gilt nur für ältere Programme (Programme, die Unicode nicht unterstützen).
Es gilt systemweit , unabhängig von den Ländereinstellungen eines bestimmten Benutzers , und es sind Administratorrechte erforderlich, um es zu ändern.
Es ist wichtig zu beachten, dass dies eine Legacy- Einstellung ist , da Codepages nicht mehr für Programme gelten, die Unicode intern verwenden und die Unicode-Versionen der Windows-API aufrufen.
Insbesondere werden die aktiven Codepages bestimmt , dh die standardmäßig verwendete Zeichenkodierung :
Die ANSI-Codepage , die verwendet werden soll, wenn Nicht-Unicode-Programme die Nicht-Unicode-Versionen (ANSI) der Windows-API aufrufen, insbesondere die ANSI-Version der
TextOut
Funktion zum Übersetzen von Zeichenfolgen in und aus Unicode, die insbesondere bestimmt, wie die Zeichenfolgen des Programms in der GUI .Die OEM-Codepage , die standardmäßig in Konsolenfenstern aktiviert werden soll
chcp
.65001
, die die UTF-8-Codierung von Unicode darstellt, ist eine Lösung. Dies kann jedoch dazu führen, dass ältere Befehlszeilenprogramme Daten falsch interpretieren und sogar fehlschlagen. Weitere Informationen finden Sie in dieser StackOverflow-Antwort .850
, führen Sie siechcp 850
incmd.exe
und$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [text.encoding]::GetEncoding(850)
in PowerShell aus.Trotz des Wortes locale in dem älteren Begriff verwendet , und die Wortsprache in der laufenden Funktionsperiode:
Die einzigen Aspekte, die von der Einstellung gesteuert werden, sind die aktiven Codepages und die Standard- Bitmap-Schriftarten , nicht auch andere Elemente eines Gebietsschemas (die von den Gebietsschemaeinstellungen auf Benutzerebene gesteuert werden).
Eine bestimmte Codepage wird normalerweise von vielen Gebietsschemas gemeinsam genutzt und umfasst mehrere Sprachen. Beispielsweise wird die weit verbreitete
1252
Codepage von vielen westeuropäischen Sprachen verwendet, einschließlich Englisch.Wenn Sie die Einstellung jedoch über die Systemsteuerung ändern, wählen Sie die Einstellung über ein bestimmtes Gebietsschema aus.
Eine Liste aller Windows-Codepages finden Sie unter https://docs.microsoft.com/en-us/windows/desktop/Intl/code-page-identifiers
quelle
GetACP()
Funktion - technet.microsoft.com/en-us/dd318070 - das ist ein interessanter Link. Der Bemerkungsabschnitt sagt direkt, dass dieser Funktionsrückgabewert NICHT die vom Benutzer ausgewählte Standardeingabesprache und GUI-Sprache darstellt, sondern etwas ganz anderes ...Das Gebietsschema ist auch in msinfo32 zu sehen.
quelle
Die Windows-API, die die aktive Codepage zurückgibt, ist GetConsoleOutputCP () .
quelle
chcp
)