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

StackOverflow https://stackoverflow.com/questions/76482

  •  09-06-2019
  •  | 
  •  

Вопрос

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

cat tmp.log -encoding UTF8 > new.log

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

Это было полезно?

Решение

Как было предложено здесь:

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

Другие советы

Я бы сделал это вот так:

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

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

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

(Get-Content -Encoding UTF8 $Имя файла)

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

$xml = New-Object -Typename XML
$xml.load('foo.xml')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top