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

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

Actuellement, je suis sous Windows 7 x64 et je veux 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. L'exécution de chcp 65001 dans l'invite de commande avant l'utilisation d'un outil aide, mais y a-t-il un moyen de définir HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP comme page de code par défaut ?

Mise à jour:

Modifier la valeur de 65001 en HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun semble empêcher le système de démarrer dans mon cas. (merci à Ole_Brun )

Réponses (6)

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

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

  1. Start -> Run -> regedit
  2. Allez sur [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. Changez la valeur en chcp 65001
41
41
41
2013-12-07 15:36:03 +0000

Personnellement, je n'aime pas changer le 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 sous le nom switch.bat.

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

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

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

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

Dossier d'enregistrement :

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 supérieure doit être incluse telle quelle
  3. HKEY_CURRENT_USER ne peut être abrégé
  4. dword ne peut ê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 `/ -> Dossier d'enregistrement :
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 ] &003
  2. La ligne supérieure doit être incluse telle quelle
  3. HKEY_CURRENT_USER ne peut être abrégé
  4. dword ne peut ê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
10
10
10
2019-05-11 14:44:42 +0000

Dans la version 1809 de Windows 10, j'ai réussi à résoudre définitivement ce problème en allant dans le Language settings du système, en sélectionnant Administrative language settings, en cliquant sur Change system locale... et en cochant la case Beta: Use Unicode UTF-8 for worldwide language support puis en redémarrant mon PC.

De cette façon, cela s'applique à toutes les applications, même celles que je ne démarre pas à l'invite de commande ! (Ce qui était nécessaire pour moi, puisque j'essayais de modifier le code Agda à partir d'Atom).

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

Cela peut être fait en créant un profil PowerShell et en y ajoutant 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 de modifier le registre et, contrairement à la modification d'un raccourci, fonctionnera si PowerShell est lancé dans un dossier spécifique en utilisant le menu contextuel de l'explorateur Windows.

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

La commande pour changer la page de code est chcp <codepage>. Exemple : chcp 1252. Vous devez la taper dans une fenêtre Powershell. Pour éviter de devoir le taper à chaque fois (si vous devez toujours changer la page de code), vous pouvez l'ajouter à la ligne de commande du programme. Pour ce faire, suivez les étapes suivantes :

  1. Faites un clic droit sur l'icône Powershell dans le menu Démarrer et choisissez “Plus” > “Ouvrir le fichier Emplacement”.
  2. Faites un clic droit sur le raccourci Powershell et sélectionnez “Propriétés”.
  3. Ajoutez ce qui suit à la fin de la ligne de commande “Target” : -NoExit -Command "chcp 1252"

Be happy. Ne vous occupez pas du registre Windows, sauf si vous n'avez pas d'autre option.