Я запускаю сценарий powershell на файлах XML рекурсивно для поиска и замены текста. Код работает отлично с поиском и заменой текста. Однако в некоторых файлах есть текст других языков, например fréquentes, который меняется после frà © quentes после запуска скрипта. Я использую кодировку UTF8 в скрипте. Любые указатели на то, как сохранить загрузку?проблема с кодировкой в поиске и замене powershell
$content| Foreach-Object{$_ -replace 'test1' , 'testing'`
-replace 'test2' , 'testing' }| Out-File file.FullName -Encoding utf8
Спасибо за ваш ответ. Использование его для работы по умолчанию. Мой XML-файл имеет в нем следующее: вот почему я пытался использовать utf8 в скрипте. Xml version = '1.0' encoding = 'utf-8'?> Использует ли по умолчанию ту же самую кодировку, которая уже существует в файле XML, или изменить файл XML по умолчанию из utf-8 – user2628187
'Default' означает использовать устаревшую кодовую страницу системы, поэтому, как правило, это такая плохая идея. Эта кодировка существует только для обслуживания приложений, отличных от Юникода, но текстовые файлы часто также входят в эту кодировку. Если XML-файл * по праву * объявляет UTF-8, то код, который вы отправили, ничего не должен навредить. Другой вариант, чтобы избежать этого, если ваши замены не содержат символы, отличные от ASCII, будет просто использовать значение по умолчанию для чтения * и * записи. Таким образом, все, что не является ASCII, просто передается (если вы используете 8-битную устаревшую кодовую страницу, большинство из них). – Joey