web-dev-qa-db-fra.com

Changer la page de code par défaut de la console Windows en UTF-8

Actuellement, j'utilise Windows 7 x64 et je souhaite généralement que tous les outils de la console fonctionnent avec UTF-8 plutôt qu'avec la page de code par défaut 850.

Exécuter chcp 65001 dans l'invite de commande avant d'utiliser un outil peut aider, mais existe-t-il un moyen de définir une page de code par défaut?

Mise à jour:

Changer la valeur de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP en 65001 semble rendre le système incapable de démarrer dans mon cas.

Le changement proposé de HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun à @chcp 65001>nul a tout à fait bien fonctionné. (merci à Ole_Brun )

114
Regent

Pour modifier la page de codes pour la console uniquement, procédez comme suit:

  1. Démarrer -> Exécuter -> regedit
  2. Aller au [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. Changez la valeur en chcp 65001
92
Nils Magne Lunde

Personnellement, je n'aime pas changer de registre. Cela peut causer beaucoup de problèmes. J'ai créé un fichier batch:

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

J'ai enregistré à C:\Windows\System32 en tant que switch.bat.

J'ai créé un lien pour cmd.exe sur le bureau.

Dans les propriétés du raccourci cmd, modifiez la destination en: C:\Windows\System32\cmd.exe /k switch

Voilá, quand je dois taper en UTF-8, j'utilise ce lien.

36
juca

Fichier Reg:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. La valeur doit être en hexadécimal
  2. La ligne du haut doit être incluse exactement telle quelle
  3. HKEY_CURRENT_USER ne peut pas être abrégé
  4. dword ne peut pas être omis

Invite de commande:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. La valeur peut être en déc ou en hex
  2. % SystemRoot% doit être échappé
  3. REG_DWORD ne peut pas être omis

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. La valeur peut être en déc ou en hex
  2. -Type DWord est supposé avec PowerShell 3+
  3. Peut utiliser ni -> New-Item
  4. Peut utiliser sp -> Set-ItemProperty
  5. Peut utiliser -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. La valeur peut être en déc ou en hex
  2. Peut utiliser / -> \
  3. Peut utiliser HKCU -> HKEY_CURRENT_USER
  4. Peut utiliser user -> HKEY_CURRENT_USER
30
Steven Penny

Pour ce faire, créez un profil PowerShell et ajoutez-lui la commande "chcp 65001> $ null":

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

Cela ne nécessite pas la modification du registre et, contrairement à la modification d'un raccourci, fonctionne si PowerShell est démarré dans un dossier spécifique à l'aide du menu contextuel de l'Explorateur Windows.

5
Freon Sandoz

La commande pour changer la page de codes est chcp <codepage>. Exemple: chcp 1252. Vous devriez le taper dans une fenêtre Powershell. Pour éviter d'avoir à le taper à chaque fois (si vous devez toujours modifier la page de codes), vous pouvez l'ajouter à la ligne de commande du programme. Pour ce faire, procédez comme suit:

  1. Cliquez avec le bouton droit sur l'icône Powershell dans le menu Démarrer et choisissez "Plus"> "Ouvrir l'emplacement du fichier".
  2. Cliquez avec le bouton droit sur le raccourci Powershell et sélectionnez "Propriétés".
  3. Ajoutez ce qui suit à la fin de la ligne de commande "cible": -NoExit -Command "chcp 1252"

Soyez heureux. Ne vous mêlez pas du registre Windows à moins que vous n'ayez aucune autre option.

5
JColares