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

Cambiar la página de códigos por defecto de la consola de Windows a UTF-8

Actualmente utilizo Windows 7 x64 y normalmente quiero que todas las herramientas de la consola funcionen con UTF-8 en lugar de con la página de códigos por defecto 850.

Ejecutar chcp 65001 en la línea de comandos antes de usar cualquier herramienta ayuda pero ¿hay alguna forma de establecer es como página de códigos por defecto?

Actualizar:

Cambiar el valor de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP a 65001 parece que hace que el sistema no pueda arrancar en mi caso.

El cambio propuesto de HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun a @chcp 65001>nul sirvió muy bien para mi propósito. (gracias a Ole_Brun )

Respuestas (6)

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

Para cambiar la página de códigos de la consola solamente, haga lo siguiente:

  1. Ir a [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  2. Cambie el valor a chcp 65001
41
41
41
2013-12-07 15:36:03 +0000

Personalmente, no me gusta cambiar el registro. Esto puede causar muchos problemas. Creé un archivo por lotes:

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

Guardé en C:\Windows\System32 como switch.bat.

Creé un enlace para cmd.exe en el Escritorio.

En las propiedades del atajo de cmd, cambié el destino a: C:\Windows\System32\cmd.exe /k switch

Voilá, cuando necesito escribir en UTF-8, uso este enlace.

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

Archivo de registro:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. El valor debe estar en hexágono
  2. La línea superior debe ser incluida exactamente como es
  3. HKEY_CURRENT__USER no puede ser abreviado
  4. dword no puede ser omitido

Aviso de Comando:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. El valor puede ser en dec o en hex
  2. %SystemRoot% debe ser escapado
  3. La palabra REG REG no puede ser omitida… El valor puede ser en dec o hex.
  4. -Type DWord se asume con PowerShell 3+
  5. Puede usar ni -> New-Item
  6. Puede usar sp -> Set-ItemProperty
  7. Puede usar -ea 0 -> -ErrorAction Ignore

Cygwin:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. El valor puede ser en dec o en hexágono
  2. Puede usar `/ -> Archivo de registro:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. [El valor debe estar en hexágono] &003
  2. La línea superior debe ser incluida exactamente como es
  3. HKEY_CURRENT__USER no puede ser abreviado
  4. dword no puede ser omitido

Aviso de Comando:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. El valor puede ser en dec o en hex
  2. %SystemRoot% debe ser escapado
  3. La palabra REG REG no puede ser omitida… El valor puede ser en dec o hex.
  4. -Type DWord se asume con PowerShell 3+
  5. Puede usar ni -> New-Item
  6. Puede usar sp -> Set-ItemProperty
  7. Puede usar -ea 0 -> -ErrorAction Ignore

Cygwin:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. El valor puede ser en dec o en hexágono
  2. Puede usar
  3. Puede usar HKCU -> HKEY_CURRENT_USER
  4. Puede usar user -> HKEY_CURRENT_USER
10
10
10
2019-05-11 14:44:42 +0000

En el 1809 build de Windows 10 he conseguido resolver esto de forma permanente yendo al Language settings del sistema, seleccionando Administrative language settings, haciendo clic en Change system locale... y marcando la casilla Beta: Use Unicode UTF-8 for worldwide language support y luego reiniciando mi pc.

De esta forma se aplica a todas las aplicaciones, ¡incluso a las que no inicio desde un símbolo del sistema! (Lo cual era necesario para mí, ya que estaba intentando editar el código Agda de Atom.)

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

Esto se puede hacer creando un perfil de PowerShell y agregándole el comando “chcp 65001 >$null”:

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

Esto no requiere editar el registro y, a diferencia de la edición de un acceso directo, funcionará si PowerShell se inicia en una carpeta específica mediante el menú contextual del Explorador de Windows.

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

El comando para cambiar la página de códigos es chcp <codepage>. Ejemplo: chcp 1252. Debería escribirlo en una ventana de Powershell. Para evitar la molestia de tener que escribirlo cada vez (si siempre tienes que cambiar la página de códigos), puedes añadirlo a la línea de comandos del programa. Para ello, siga estos pasos:

  1. Haga clic con el botón derecho del ratón en el icono de Powershell del menú de inicio y elija “Más” > “Abrir ubicación del archivo”.
  2. 2. Haga clic con el botón derecho del ratón en el acceso directo de Powershell y seleccione “Propiedades”. Añada lo siguiente al final de la línea de comandos de “Objetivo”: -NoExit -Command "chcp 1252"

Sea feliz. No se preocupe por el Registro de Windows a menos que no tenga otra opción.