Par défaut, PowerShell dans Windows semble sortir UTF-16 (par exemple, si je fais un simple echo hello > hi.txt
, puis hi.txt
se retrouve dans UTF-16). Je sais que je peux forcer cela à l'encodage de texte souhaité en le faisant echo hello | out-file -encoding utf8 hi.txt
, mais ce que j'aimerais, c'est que ce soit juste la valeur par défaut lorsque j'utilise l'opérateur de redirection. Y'a-t-il une quelconque façon de réussir cela?
powershell
redirection
character-encoding
Benjamin Pollack
la source
la source
Réponses:
L'utilisation d'un décompilateur .NET sur l'assembly System.Management.Automation (alias «Microsoft Windows PowerShell Engine Core Assembly») révèle ce fragment de code:
Donc, cela me semble assez codé en dur.
Pour info, c'était sur le système Windows 7 Enterprise x64 avec PowerShell 2.0 installé.
la source
CommandParameterInternal.CreateParameterWithArgument(PositionUtilities.EmptyExtent, "Encoding", "-Encoding:", PositionUtilities.EmptyExtent, "Unicode", false, false);
Je ne sais pas si cela fera exactement ce que vous recherchez, mais vous pouvez essayer de définir la variable d'environnement comme mentionné ici
la source
$OutputEncoding
c'est tout à fait ce dont j'ai besoin; qui est défini sur ASCII dans PowerShell et affecte la façon dont les choses sont affichées . Ce que je veux faire, c'est changer le format du texte qui est enregistré dans un fichier, ce qui (AFAICT) est différent de ce que$OutputEncoding
contrôle.