2011-04-12 10:42:07 +0000 2011-04-12 10:42:07 +0000
131
131

Ändern Sie die Standard-Codepage der Windows-Konsole auf UTF-8

. Derzeit verwende ich Windows 7 x64 und möchte normalerweise, dass alle Konsolen-Tools mit UTF-8 statt mit der Standard-Codepage 850 arbeiten.

Das Ausführen von chcp 65001 in der Eingabeaufforderung vor der Verwendung irgendwelcher Tools hilft, aber gibt es eine Möglichkeit, diese als Standard-Codepage festzulegen?

Update:

Die Änderung des Wertes von HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP in 65001 scheint in meinem Fall dazu zu führen, dass das System nicht mehr booten kann.

Die vorgeschlagene Änderung von HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun in @chcp 65001>nul hat für meinen Zweck gerade gut gedient. (Dank an Ole_Brun )

Antworten (6)

102
102
102
2011-04-12 12:22:32 +0000

Um die Zeichenumsetztabelle nur für die Konsole zu ändern, gehen Sie wie folgt vor:

  1. Starten Sie -> Ausführen -> regedit
  2. Gehen Sie zu [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. Ändern Sie den Wert in chcp 65001
41
41
41
2013-12-07 15:36:03 +0000

Ich persönlich mag es nicht, das Register zu ändern. Das kann eine Menge Probleme verursachen. Ich habe eine Batch-Datei erstellt:

@ECHO OFF
REM change CHCP to UTF-8
CHCP 65001
CLS

Ich habe unter C:\Windows\System32 als switch.bat gespeichert.

Ich habe eine Verknüpfung für cmd.exe auf dem Desktop erstellt.

In den Eigenschaften der cmd-Verknüpfung habe ich das Ziel geändert in: C:\Windows\System32\cmd.exe /k switch

Voilá, wenn ich UTF-8 eingeben muss, benutze ich diese Verknüpfung.

35
35
35
2015-06-13 20:39:21 +0000

Reg-Datei:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. Wert muss in hex sein
  2. Die oberste Zeile muss genau wie bei angegeben werden 3. HKEY_CURRENT_USER kann nicht abgekürzt werden
  3. dword kann nicht weggelassen werden

Eingabeaufforderung:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. Wert kann in dez oder hex sein
  2. %SystemRoot% muss entkommen
  3. REG_DWORD kann nicht weggelassen werden

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. Der Wert kann in dez oder hex angegeben werden
  2. -Type DWord wird bei PowerShell 3+ 3 angenommen. Kann ni -> New-Item mit sp -> Set-ItemProperty verwenden 4. Kann -ea 0 -> -ErrorAction Ignore verwenden 5. kann `/ -> Reg-Datei:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. [ Wert muss in hex sein ]&003
  2. Die oberste Zeile muss genau wie bei angegeben werden 3. HKEY_CURRENT_USER kann nicht abgekürzt werden
  3. dword kann nicht weggelassen werden

Eingabeaufforderung:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. Wert kann in dez oder hex sein
  2. %SystemRoot% muss entkommen
  3. REG_DWORD kann nicht weggelassen werden

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. Der Wert kann in dez oder hex angegeben werden
  2. -Type DWord wird bei PowerShell 3+ 3 angenommen. Kann ni -> New-Item mit sp -> Set-ItemProperty verwenden 4. Kann -ea 0 -> -ErrorAction Ignore verwenden 5. kann

verwenden * * *

Cygwin:

regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe'
regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001
  1. Wert kann in Dez oder Hex sein
  2. Kann HKCU -> HKEY_CURRENT_USER verwenden 3. Kann user -> HKEY_CURRENT_USER verwenden 4. Kann &007 verwenden
10
10
10
2019-05-11 14:44:42 +0000

In der 1809er Build von Windows 10 habe ich es geschafft, dieses Problem dauerhaft zu lösen, indem ich zu Language settings des Systems ging, Administrative language settings auswählte, auf Change system locale... klickte und das Kästchen Beta: Use Unicode UTF-8 for worldwide language support aktivierte und dann meinen PC neu startete.

Auf diese Weise gilt es für alle Anwendungen, auch für solche, die ich nicht von einer Eingabeaufforderung aus starte! (Was für mich notwendig war, da ich versuchte, Agda-Code von Atom zu bearbeiten).

6
6
6
2017-09-03 20:56:45 +0000

Dies kann durch Erstellen eines PowerShell-Profils und Hinzufügen des Befehls “chcp 65001 >$null” erfolgen:

PS> Set-ExecutionPolicy RemoteSigned
PS> New-Item -Path $Profile -ItemType file -Force
PS> notepad $Profile

Dies erfordert keine Bearbeitung der Registrierung und funktioniert im Gegensatz zur Bearbeitung einer Verknüpfung, wenn PowerShell in einem bestimmten Ordner über das Kontextmenü von Windows Explorer gestartet wird.

5
5
5
2016-11-02 21:11:54 +0000

Der Befehl zum Ändern der Zeichenumsetztabelle lautet chcp <codepage>. Beispiel: chcp 1252. Sie sollten ihn in ein Powershell-Fenster eingeben. Um die Mühe zu vermeiden, sie jedes Mal einzugeben (wenn Sie die Zeichenumsetztabelle immer ändern müssen), können Sie sie an die Befehlszeile des Programms anhängen. Führen Sie dazu die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste auf das Powershell-Symbol im Startmenü und wählen Sie “More” > “Open file Location”.
  2. Klicken Sie mit der rechten Maustaste auf die Powershell-Verknüpfung und wählen Sie “Eigenschaften”.
  3. Fügen Sie am Ende der Befehlszeile “Ziel” Folgendes hinzu: -NoExit -Command "chcp 1252"

Seien Sie zufrieden. Machen Sie keine Schwierigkeiten mit der Windows-Registrierung, es sei denn, Sie haben keine andere Möglichkeit.