Standardmäßig gibt PowerShell in Windows anscheinend UTF-16 aus (wenn ich z. B. eine einfache Ausgabe vornehme echo hello > hi.txt
, hi.txt
endet die Ausgabe in UTF-16). Ich weiß, dass ich dies auf meine gewünschte Textcodierung erzwingen kann, indem ich dies stattdessen tue echo hello | out-file -encoding utf8 hi.txt
, aber ich möchte, dass dies nur die Standardeinstellung ist, wenn ich den Umleitungsoperator verwende. Gibt es eine Möglichkeit, dies zu erreichen?
powershell
redirection
character-encoding
Benjamin Pollack
quelle
quelle
Antworten:
Die Verwendung eines .NET-Dekompilierers in der System.Management.Automation-Assembly (auch bekannt als "Microsoft Windows PowerShell Engine Core Assembly") zeigt das folgende Codefragment:
Es sieht für mich also ziemlich hardcodiert aus.
Zu Ihrer Information, dies war auf einem Windows 7 Enterprise x64-System mit PowerShell 2.0 installiert.
quelle
CommandParameterInternal.CreateParameterWithArgument(PositionUtilities.EmptyExtent, "Encoding", "-Encoding:", PositionUtilities.EmptyExtent, "Unicode", false, false);
Sie sind sich nicht sicher, ob dies genau das tut, wonach Sie suchen, aber Sie können versuchen, die Umgebungsvariable wie hier beschrieben festzulegen
quelle
$OutputEncoding
ist, was ich brauche. Dies ist in PowerShell auf ASCII festgelegt und wirkt sich auf die Anzeige aus . Ich möchte das Format von Text ändern, der in einer Datei gespeichert ist, die sich von den Steuerelementen (AFAICT) unterscheidet$OutputEncoding
.