Ich führe ein Powershell-Skript auf XML-Dateien rekursiv zum Suchen und Ersetzen von Text. Der Code funktioniert gut mit dem Suchen und Ersetzen des Textes. In bestimmten Dateien gibt es jedoch andere Sprachen wie fréquentes, die nach dem Ausführen des Skripts in frà © quentes geändert wird. Ich habe die UTF8-Codierung im Skript verwendet. Irgendwelche Hinweise, wie man das Enkodieren behält?Codierung Problem in Powershell suchen und ersetzen
$content| Foreach-Object{$_ -replace 'test1' , 'testing'`
-replace 'test2' , 'testing' }| Out-File file.FullName -Encoding utf8
Danke für Ihre Antwort. Ändern Sie es standardmäßig funktioniert. Meine XML-Datei hat die unten genannten und deshalb habe ich versucht, utf8 im Skript zu verwenden. Xml version = '1.0' encoding = 'utf-8'?> Bedeutet standardmäßig, die gleiche Codierung zu verwenden, die bereits in der XML-Datei vorhanden ist, oder die XML-Datei von utf-8 – user2628187
'Default' zu default zu ändern bedeutet, die alte Codepage des Systems zu verwenden, weshalb es so eine schlechte Idee ist, sie normalerweise zu verwenden. Diese Kodierung existiert nur für Nicht-Unicode-Anwendungen, aber Textdateien sind oft auch in dieser Kodierung. Wenn die XML-Datei zu Recht UTF-8 deklariert, sollte der von Ihnen gepostete Code nichts schaden. Eine andere Möglichkeit, dies zu vermeiden, wäre, wenn Ihre Ersetzungen keine Nicht-ASCII-Zeichen enthalten, einfach Standard zum Lesen von * und * Schreiben zu verwenden. Auf diese Weise wird alles, was nicht-ASCII ist, nur durchgelassen (wenn Sie eine 8-Bit-Legacy-Codepage verwenden; die meisten tun dies). – Joey