Modificare la pagina di codice predefinito della console di Windows in UTF-8

Attualmente sto eseguendo Windows 7 x64 e di solito voglio che tutti gli strumenti della console funzionino con UTF-8 piuttosto che con la pagina di codice predefinita 850.

L'esecuzione di chcp 65001 nel prompt dei comandi prima dell'utilizzo di tutti gli strumenti aiuta ma c'è un modo per impostare come pagina di codice predefinita?

Aggiornare:

Sostituire il valore HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP a 65001 sembra rendere imansible l'avvio del sistema nel mio caso.

La modifica proposta di HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun a @chcp 65001>nul servito bene per il mio scopo. (grazie a Ole_Brun )

Per modificare la codepage solo per la console, procedere come segue:

  1. Avvia -> Esegui -> regedit
  2. Vai a [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. Modificare il valore su chcp 65001

Non mi piace cambiare il sistema. Ciò crea molti problemi per me. Ho creato un file batch:

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

Ho salvato a C: \ Windows \ System32 come switch.bat.

Ho creato un collegamento per cmd.exe sul desktop.

Nelle properties; di cmd, ha cambiato la destinazione in: C:\Windows\System32\cmd.exe /k switch

Voilá, quando ho bisogno di digitare UTF-8, uso questo collegamento.

File Reg:

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe] "CodePage"=dword:fde9 
  1. Il valore deve essere in esadecimale
  2. La linea superiore deve essere inclusa esattamente come lo è
  3. HKEY_CURRENT_USER non può essere abbreviato
  4. non può essere omesso

Prompt dei comandi:

 REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001 
  1. Il valore può essere in dec o hex
  2. % SystemRoot% deve essere eliminato
  3. REG_DWORD non può essere omesso

PowerShell:

 New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001 
  1. Il valore può essere in dec o hex
  2. -Type DWord è assunto con PowerShell 3+
  3. Può usare ni -> New-Item
  4. Può usare sp -> Set-ItemProperty
  5. Può usare -ea 0 -> -ErrorAction Ignore

Cygwin:

 regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe' regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001 
  1. Il valore può essere in dec o hex
  2. Può usare / -> \
  3. Può utilizzare HKCU -> HKEY_CURRENT_USER
  4. Può utilizzare l' user -> HKEY_CURRENT_USER

Il command per cambiare la codepage è chcp <codepage> . Esempio: chcp 1252 . Devi digitarlo in una window di Powershell. Per evitare la difficoltà di digitarla each volta (se devi sempre cambiare la codepage), puoi aggiungerla alla linea di command del programma. A tale scopo, attenersi alla seguente procedura:

  1. Fare clic con il button destro del mouse sull'icona Powershell sul menu Start e scegliere "Altro"> "Apri file posizione".
  2. Fare clic con il button destro del mouse sul collegamento Powershell e select "Proprietà".
  3. Aggiungere alla fine della row di command "Target": -NoExit -Command "chcp 1252"

Siate felici. Non impegnarsi con il Registro di sistema di Windows a less che non si dispone di un'altra opzione.

Ciò può essere fatto creando un profilo PowerShell e aggiungendo il command "chcp 65001> $ null" ad esso:

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

Questo non richiede la modifica del Registro di sistema e, a differenza di una modifica di un collegamento, functionrà se PowerShell viene avviato in una cartella specifica utilizzando il menu di scelta rapida di Windows Explorer.