Как использовать PowerShell Set-Content?

474
Freon Sandoz

У меня есть Perl-скрипт, который производит вывод utf8. Я пытался использовать Set-Content для записи файла utf8, как это было предложено Powershell, отвергающим Perl binmode? ,

perl -S testbinmode.pl | Set-Content "binmode.txt" -Encoding Byte 

выдает ошибку

«Set-Content: Невозможно продолжить байтовое кодирование. При использовании байтового кодирования содержимое должно быть байтового типа».

perl -S testbinmode.pl | Set-Content "binmode.txt" -Encoding UTF8 

не выдает сообщение об ошибке, но также не записывает правильный файл utf8.

Выходные данные сценария Perl правильно отображаются в окне Powershell. Как правильно записать этот вывод в файл с кодировкой utf8?

Благодарю.

Обновление: я видел много ответов на эту и аналогичные проблемы, здесь по ссылке, указанной выше, и по адресу https://stackoverflow.com/questions/40098771/changing-powershells-default-output-encoding-to-utf-8 . Ни один из них, похоже, не работает, что наводит меня на мысль, что ни один из них на самом деле не был проверен. Требуется протестированный метод для перенаправления вывода текста UTF8 из программы CLI в файл. Благодарю.

Вот сценарий тестирования Perl:

use strict; use warnings; use utf8; binmode(STDOUT, ":utf8"); print("The Crüxshadows"); 
0
Сделайте вывод сценария perl в текстовый файл, а затем запустите на нем Set-Content. Что похоже на то, что вы делаете, не совсем то же самое Ramhound 6 лет назад 0
perl -S testbinmode.pl> binmode.txt ... Set-Content "binmode.txt" -Encoding UTF8 ... создает командлет Set-Content в позиции конвейера команд 1 Задайте значения для следующих параметров: Значение [0] :. ... как мне продолжить? ... Почему этот блок закрывается и публикуется, когда я пытаюсь разделить свой ответ на несколько строк? Freon Sandoz 6 лет назад 0
Обновите ваш вопрос, ваш неотформатированный комментарий не может быть прочитан. Я не отвечаю на вопрос, заданный в комментарии, или не учитываю информацию, содержащуюся в комментарии, при отправке ответа. Ramhound 6 лет назад 0
попробуйте это: `$ utf8 = New-Object System.Text.utf8encoding` и затем используйте его в качестве кодировки:` perl -S testbinmode.pl | Set-Content "binmode.txt" -Кодирование $ utf8` SimonS 6 лет назад 0
также: я предполагаю, что сообщение об ошибке говорит, что нет содержимого для записи, или он не знает, куда его писать SimonS 6 лет назад 0
Нету. Сообщение об ошибке: «Set-Content: Невозможно связать параметр« Кодировка ». Невозможно преобразовать значение« System.Text.UTF8Encoding »типа« System.Text.UTF8Encoding »в тип« Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding ». Если вы хотите Отформатированный ответ, вы должны сказать мне, как. Этот сайт не позволяет мне использовать ключ возврата, чтобы разбить мой ответ на несколько строк. Может ли кто-нибудь предоставить * проверенный * метод для перенаправления вывода текста UTF8 из программы CLI в файл под PowerShell? Freon Sandoz 6 лет назад 0

0 ответов на вопрос

Похожие вопросы