Esse problema com entrada não ASCII é reproduzível no console para todas as versões do Windows até e incluindo o Windows 10. O processo de host do console, ou seja, conhost.exe
, não foi projetado para UTF-8 (página de códigos 65001) e hasn foi atualizado para apoiá-lo de forma consistente.
Em particular, a entrada não-ASCII causa uma leitura vazia e uma leitura vazia é obtida para ser um fim-de-arquivo, então a leitura da entrada pelo console pára, resultando em saída truncada.
A opção / U de cmd.exe
também não é útil, pois funciona apenas para
comandos internos. Você pode obter melhores resultados de alguns aplicativos
direcionando a saída do comando para um arquivo, mas o arquivo não terá um UTF-8
Marca de pedido de byte (BOM) .
Em suma, não espere muito de chcp 65001
e você não ficará desapontado.
A única versão Unicode que funciona bem no Windows é o Unicode de 16 bits.