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 )
Pour modifier la page de codes pour la console uniquement, procédez comme suit:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
chcp 65001
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.
Fichier Reg:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
Invite de commande:
REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
PowerShell:
New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
-Type DWord
est supposé avec PowerShell 3+ni -> New-Item
sp -> Set-ItemProperty
-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
/ -> \
HKCU -> HKEY_CURRENT_USER
user -> HKEY_CURRENT_USER
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.
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:
-NoExit -Command "chcp 1252"
Soyez heureux. Ne vous mêlez pas du registre Windows à moins que vous n'ayez aucune autre option.