Por padrão, o PowerShell no Windows parece estar produzindo UTF-16 (por exemplo, se eu fizer um simples echo hello > hi.txt
, hi.txt
acaba no UTF-16). Eu sei que posso forçar isso para a codificação de texto desejada echo hello | out-file -encoding utf8 hi.txt
, mas o que eu gostaria é que isso seja o padrão quando eu usar o operador de redirecionamento. Existe alguma maneira de conseguir isso?
powershell
redirection
character-encoding
Benjamin Pollack
fonte
fonte
Respostas:
O uso de um descompilador .NET no assembly System.Management.Automation (também conhecido como "Conjunto Principal do Microsoft Windows PowerShell Engine") revela este fragmento de código:
Então, parece muito codificado para mim.
Para sua informação, estava no sistema Windows 7 Enterprise x64 com o PowerShell 2.0 instalado.
fonte
CommandParameterInternal.CreateParameterWithArgument(PositionUtilities.EmptyExtent, "Encoding", "-Encoding:", PositionUtilities.EmptyExtent, "Unicode", false, false);
Não tenho certeza se isso fará exatamente o que você está procurando, mas você pode tentar definir a variável de ambiente conforme mencionado aqui
fonte
$OutputEncoding
é exatamente o que eu preciso; definido como ASCII no PowerShell e afeta a maneira como as coisas são exibidas . O que eu quero fazer é alterar o formato do texto salvo em um arquivo, que (AFAICT) é diferente do que$OutputEncoding
controla.