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

Wijzig de standaard code pagina van de Windows console naar UTF-8

Momenteel draai ik Windows 7 x64 en meestal wil ik dat alle console tools werken met UTF-8 in plaats van met standaard code pagina 850.

Het uitvoeren van chcp 65001 in de opdrachtprompt voorafgaand aan het gebruik van alle tools helpt, maar is er een manier om in te stellen is als standaard code pagina?

Update:

Het veranderen van HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP waarde naar 65001 lijkt het systeem niet te kunnen opstarten in mijn geval.

Voorgestelde wijziging van HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun naar @chcp 65001>nul diende net goed voor mijn doel. (met dank aan Ole_Brun )

Antwoorden (6)

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

Om de codepagina voor de console te wijzigen, doe je het volgende:

  1. Starten -> Rennen -> regedit
  2. 2. Ga naar [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. 3. Verander de waarde in chcp 65001
41
41
41
2013-12-07 15:36:03 +0000

Persoonlijk hou ik er niet van om het register te veranderen. Dit kan veel problemen veroorzaken. Ik heb een batch bestand aangemaakt:

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

Ik heb op C:\Windows\System32 opgeslagen als switch.bat.

Ik heb een link aangemaakt voor cmd.exe op het bureaublad.

In de eigenschappen van de cmd snelkoppeling, veranderde de bestemming in: C:\Windows\System32\cmd.exe /k switch

Voilá, wanneer ik UTF-8 moet intypen, gebruik ik deze link.

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

Reg-bestand:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. 1. Waarde moet in hex zijn. 2. Bovenste regel moet precies zo staan als
  2. HKEY_CURRENT_USER kan niet worden afgekort
  3. dword kan niet worden weggelaten
  • *

Command Prompt:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. 2. Waarde kan in dec of hex zijn. 2. %SystemRoot% moet ontsnapt zijn
  2. REG_DWORD kan niet worden weggelaten
  • *

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. 2. -Type DWord wordt verondersteld met PowerShell 3+
  2. Kan ni -> New-Item gebruiken 4. 4. Kan sp -> Set-ItemProperty gebruiken 5. Kan -ea 0 -> -ErrorAction Ignore
  • *

Cygwin gebruiken:

regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe'
regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001
  1. Kan `/ -> Reg-bestand:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. 1. [ Waarde moet in hex ]&003 zijn. 2. Bovenste regel moet precies zo staan als
  2. HKEY_CURRENT_USER kan niet worden afgekort
  3. dword kan niet worden weggelaten
  • *

Command Prompt:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. 2. Waarde kan in dec of hex zijn. 2. %SystemRoot% moet ontsnapt zijn
  2. REG_DWORD kan niet worden weggelaten
  • *

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. 2. -Type DWord wordt verondersteld met PowerShell 3+
  2. Kan ni -> New-Item gebruiken 4. 4. Kan sp -> Set-ItemProperty gebruiken 5. Kan -ea 0 -> -ErrorAction Ignore
  • *

Cygwin gebruiken:

regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe'
regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001
  1. Kan

gebruiken. 2. Waarde kan in dec of hex zijn. 2. Kan HKCU -> HKEY_CURRENT_USER gebruiken. 3. Kan user -> HKEY_CURRENT_USER gebruiken 4. Kan &007 gebruiken

10
10
10
2019-05-11 14:44:42 +0000

In de bouw van Windows 10 in 1809 is het me gelukt om dit permanent op te lossen door naar het systeem Language settings te gaan, Administrative language settings te selecteren, op Change system locale... te klikken en het vakje Beta: Use Unicode UTF-8 for worldwide language support aan te vinken en dan mijn pc opnieuw op te starten.

Op deze manier geldt het voor alle toepassingen, zelfs voor de toepassingen die ik niet vanaf een commando prompt start! (Wat voor mij noodzakelijk was, omdat ik probeerde Agda code van Atom te bewerken).

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

Dit kan worden gedaan door een PowerShell profiel aan te maken en het commando “chcp 65001 >$null” toe te voegen:

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

Dit vereist geen bewerking van het register en zal, in tegenstelling tot het bewerken van een snelkoppeling, werken als PowerShell wordt gestart in een specifieke map via het contextmenu van de Windows Verkenner.

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

De opdracht om de codepagina te wijzigen is chcp <codepage>. Voorbeeld: chcp 1252. Je moet het in een Powershell venster typen. Om het gedoe met het typen te vermijden (als je de codepagina altijd moet veranderen), kun je het toevoegen aan de commandoregel van het programma. Volg hiervoor de volgende stappen:

  1. 1. Klik met de rechtermuisknop op het Powershell icoontje in het Startmenu en kies “Meer” > “Locatie van het bestand openen”.
  2. 2. Klik met de rechtermuisknop op de Powershell snelkoppeling en kies “Eigenschappen”.
  3. Klik met de rechtermuisknop op de Powershell snelkoppeling. 3. Voeg het volgende toe aan het einde van de opdrachtregel “Doel”: -NoExit -Command "chcp 1252"

Wees blij. Maak geen ophef over het Windows-register, tenzij je geen andere optie hebt.