it-swarm.com.de

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

Momentan verwende ich Windows 7 x64 und möchte, dass alle Konsolentools mit UTF-8 und nicht mit der Standard-Codepage 850 arbeiten.

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

Update:

Wenn Sie den Wert von HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP in 65001 ändern, kann das System in meinem Fall nicht mehr gestartet werden.

Die vorgeschlagene Änderung von HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun zu @chcp 65001>nul hat sich für meinen Zweck bewährt. (danke an Ole_Brun )

114
Regent

Gehen Sie wie folgt vor, um die Codepage nur für die Konsole zu ändern:

  1. Start -> Ausführen -> regedit
  2. Gehe zu [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. Ändern Sie den Wert in chcp 65001
92

Persönlich mag ich es nicht, die Registrierung zu ändern. Dies kann viele Probleme verursachen. Ich habe eine Batch-Datei erstellt:

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

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

Ich habe einen Link für cmd.exe auf dem Desktop erstellt.

Ändern Sie in den Eigenschaften der cmd-Verknüpfung das Ziel in: C:\Windows\System32\cmd.exe /k switch

Voilá, wenn ich UTF-8 eingeben muss, benutze ich diesen Link.

36
juca

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 so enthalten sein, wie sie ist
  3. HKEY_CURRENT_USER kann nicht abgekürzt werden
  4. dword kann nicht weggelassen werden

Eingabeaufforderung:

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

Power Shell:

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 mit PowerShell 3+ angenommen
  3. Kann ni -> New-Item verwenden
  4. Kann sp -> Set-ItemProperty verwenden
  5. Kann -ea 0 -> -ErrorAction Ignore 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. Der Wert kann in dez oder hex angegeben werden
  2. Kann / -> \ verwenden
  3. Kann HKCU -> HKEY_CURRENT_USER verwenden
  4. Kann user -> HKEY_CURRENT_USER verwenden
30
Steven Penny

Dies kann erreicht werden, indem ein PowerShell-Profil erstellt und der Befehl "chcp 65001> $ null" hinzugefügt wird:

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
Freon Sandoz

Der Befehl zum Ändern der Codepage lautet chcp <codepage>. Beispiel: chcp 1252. Sie sollten es in ein Powershell-Fenster eingeben. Um das lästige Eingeben zu vermeiden (wenn Sie die Codepage immer ändern müssen), können Sie sie an die Befehlszeile des Programms anhängen. Gehen Sie dazu folgendermaßen vor

  1. Klicken Sie mit der rechten Maustaste auf das Powershell-Symbol im Startmenü und wählen Sie "Mehr"> "Dateispeicherort öffnen".
  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 "Target" Folgendes hinzu: -NoExit -Command "chcp 1252"

Sei glücklich. Machen Sie keine Probleme mit der Windows-Registrierung, es sei denn, Sie haben keine andere Option.

5
JColares