2016-11-23 2 views
-1

этот вопрос не должен быть здесьответа дилемма

+0

'[Console] :: OutputEncoding = [Text.Encoding] :: UTF8' или 'Start-Process -RedirectStandardOutput' – PetSerAl

+2

Затем вы должны опубликовать некоторый код или лучше [mcve]. Есть много мест, где это может пойти не так, но без кода никто не может догадываться. – PetSerAl

+0

Пожалуйста, отредактируйте свой вопрос, а не разместите фрагменты кода в комментариях. Следуйте за комментарием @ PetSerAl, опубликуйте [mcve]. – JosefZ

ответ

1

Стандарт.кодировка для >Redirection, а также для Out-File Юникода:

Out-File командлет отправляет вывод в файл. Вы можете использовать этот командлет вместо оператора перенаправления (>), когда вам нужно использовать его параметры .

-Кодирование

Определяет тип кодировки символов, используемый в файле. Допустимыми значениями являются «Юникод», «UTF7», «UTF8», «UTF32», «ASCII», «BigEndianUnicode», «Default» и «OEM».
«Юникод» по умолчанию.

«По умолчанию» использует кодировку текущей кодовой страницы ANSI.

«OEM» использует текущую исходную кодовую страницу производителя оборудования идентификатор для операционной системы.

Пример сценария:

'' 
'$outputencoding>$env:TEMP\40763209.txt' 
$outputencoding>$env:TEMP\40763209.txt 
(Get-Content -Path $env:TEMP\40763209.txt -Encoding Byte -TotalCount 16 | 
    ForEach-Object {"{0:x2}" -f $_}) -join ' ' 
'' 
'$outputencoding|out-file $env:TEMP\40763209a.txt -Encoding utf8' 
$outputencoding|out-file $env:TEMP\40763209a.txt -Encoding utf8 
(Get-Content -Path $env:TEMP\40763209a.txt -Encoding Byte -TotalCount 16 | 
    ForEach-Object {"{0:x2}" -f $_}) -join ' ' 

Выходной: обратите внимание Byte Order Mark подписей в обоих файлах:

PS D:\PShell> D:\PShell\SO\40763209.ps1 

$outputencoding>$env:TEMP\40763209.txt 
ff fe 0d 00 0a 00 0d 00 0a 00 49 00 73 00 53 00 

$outputencoding|out-file $env:TEMP\40763209a.txt -Encoding utf8 
ef bb bf 0d 0a 0d 0a 49 73 53 69 6e 67 6c 65 42 
+0

Моя проблема ровно после этого шага: я смог идентифицировать кодировку, просто открыв текстовый файл с перенаправленным выходом и нажав «Сохранить как ...» в «Блокноте». Проблема заключается в том, что преобразование содержимого файла в ** любой ** другой результат кодирования в той же ситуации: пробелы между каждым символом или даже два пробела в некоторых случаях. Избегание спецификации - это то, что я уже пробовал, читая многие другие подобные вопросы, похожие на мои в Интернете. – REMOVED