Altere a página de códigos padrão do console do Windows para UTF-8

104

Atualmente estou executando o Windows 7 x64 e geralmente quero que todas as ferramentas do console funcionem com o UTF-8, em vez de usar a página de código padrão 850.

Executar chcp 65001 no prompt de comando antes de usar qualquer ferramenta ajuda, mas existe alguma maneira de definir como página de código padrão?

Atualização:

A alteração do valor HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP para 65001 parece tornar o sistema incapaz de inicializar no meu caso.

A alteração proposta de HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun para @chcp 65001>nul serviu muito bem para o meu propósito. (graças a Ole_Brun )

    
por Regent 12.04.2011 / 12:42

5 respostas

80

Para alterar a página de códigos apenas para o console, faça o seguinte:

  1. Iniciar - > Executar - > regedit
  2. Ir para [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. Altere o valor para chcp 65001
por 12.04.2011 / 14:22
33

Eu não gosto de mudar o sistema. Isso cria muitos problemas para mim. Eu criei um arquivo de lote:

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

Eu salvei em C: \ Windows \ System32 como switch.bat.

Eu criei um link para cmd.exe na área de trabalho.

Nas propriedades do cmd, o destino foi alterado para: C:\Windows\System32\cmd.exe /k switch

Voilá, quando eu preciso digitar UTF-8, eu uso esse link.

    
por 07.12.2013 / 16:36
26

Arquivo reg:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. O valor deve estar em hexadecimal
  2. A linha superior deve ser incluída exatamente como é
  3. HKEY_CURRENT_USER não pode ser abreviado
  4. o dword não pode ser omitido

Prompt de comando:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. O valor pode estar em dec ou hex
  2. % SystemRoot% deve ser ignorado
  3. REG_DWORD não pode ser omitido

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. O valor pode estar em dec ou hex
  2. -Type DWord é assumido com o PowerShell 3 +
  3. Pode usar ni -> New-Item
  4. Pode usar sp -> Set-ItemProperty
  5. Pode usar -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. O valor pode estar em dec ou hex
  2. Pode usar / -> \
  3. Pode usar HKCU -> HKEY_CURRENT_USER
  4. Pode usar user -> HKEY_CURRENT_USER
por 13.06.2015 / 22:39
4

O comando para alterar a página de códigos é chcp <codepage> . Exemplo: chcp 1252 . Você deve digitá-lo em uma janela do Powershell. Para evitar o incômodo de digitá-lo toda vez (se você sempre tiver que alterar a página de códigos), você pode anexá-lo à linha de comando do programa. Para fazer isso, siga estas etapas:

  1. Clique com o botão direito no ícone do Powershell no menu Iniciar e escolha "Mais" > "Localização do arquivo aberto".
  2. Clique com o botão direito do mouse no atalho do Powershell e selecione "Propriedades".
  3. Adicione o seguinte ao final da linha de comando "Destino": -NoExit -Command "chcp 1252"

Seja feliz. Não se preocupe com o Registro do Windows, a menos que você não tenha outra opção.

    
por 02.11.2016 / 22:11
1

Isso pode ser feito criando um perfil do PowerShell e adicionando o comando "chcp 65001 > $ null" a ele:

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

Isso não requer a edição do registro e, ao contrário da edição de um atalho, funcionará se o PowerShell for iniciado em uma pasta específica usando o menu de contexto do Windows Explorer.

    
por 03.09.2017 / 22:56