Подтвердить что ты не робот

Powershell: настройка кодирования для конвейера Get-Content

У меня есть файл, сохраненный как UCS-2 Little Endian. Я хочу изменить кодировку, поэтому я запустил следующий код:

cat tmp.log -encoding UTF8 > new.log

Результирующий файл все еще находится в UCS-2 Little Endian. Это потому, что конвейер всегда в этом формате? Есть ли простой способ передать это в новый файл как UTF8?

4b9b3361

Ответ 1

Как предлагается здесь:

Get-Content tmp.log | Out-File -Encoding UTF8 new.log

Ответ 2

Я бы сделал это следующим образом:

get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8

Я понимаю, что опция -encoding выбирает encoding, что файл должен быть прочитан или записан.

Ответ 3

загружать содержимое из XML файла с кодировкой.

(Get-Content -Encoding UTF8 $fileName)

Ответ 4

Если вы читаете XML файл, вот еще лучший способ адаптироваться к кодировке вашего XML файла:

$xml = New-Object -Typename XML
$xml.load('foo.xml')