Para alterar a página de códigos apenas para o console, faça o seguinte:
- Iniciar - > Executar - > regedit
- Ir para
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
- Altere o valor para
chcp 65001
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 )
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.
Arquivo reg:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
Prompt de comando:
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
é assumido com o 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
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:
-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.
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.