De forma predeterminada, PowerShell en Windows parece generar UTF-16 (por ejemplo, si hago un simple echo hello > hi.txt
, hi.txt
termina en UTF-16). Sé que puedo forzar esto a mi codificación de texto deseada haciendo en su lugar echo hello | out-file -encoding utf8 hi.txt
, pero lo que me gustaría es que sea el valor predeterminado cuando uso el operador de redirección. ¿Hay alguna forma de lograr esto?
powershell
redirection
character-encoding
Benjamin Pollack
fuente
fuente
Respuestas:
El uso de un descompilador .NET en el ensamblado System.Management.Automation (también conocido como "Microsoft Windows PowerShell Engine Core Assembly") revela este fragmento de código:
Por lo tanto, me parece bastante rígido.
FYI, esto fue en el sistema Windows 7 Enterprise x64 con PowerShell 2.0 instalado.
fuente
CommandParameterInternal.CreateParameterWithArgument(PositionUtilities.EmptyExtent, "Encoding", "-Encoding:", PositionUtilities.EmptyExtent, "Unicode", false, false);
No estoy seguro de si esto hará exactamente lo que está buscando, pero puede intentar establecer la variable de entorno como se menciona aquí
fuente
$OutputEncoding
sea lo que necesito; está configurado en ASCII en PowerShell y afecta la forma en que se muestran las cosas . Lo que quiero hacer es cambiar el formato del texto que se guarda en un archivo, que (AFAICT) es diferente de lo que$OutputEncoding
controla.