Parece que um monte de respostas aqui não contabiliza a codificação de ficheiros.
acabei de me deparar com este problema, por várias outras razões, mas
echo $null > $file
$null > $file
ambos produzem um ficheiro UTF-16-LE, enquanto que
New-Item $file -type file
produz um ficheiro UTF-8.
Por qualquer razão fc > $file
e fc >> $file
, também parecem produzir ficheiros UTF-8.
Out-File $file -encoding utf8
dá-lhe um ficheiro UTF-8-BOM, enquanto que
Out-File $file -encoding ascii
dá-lhe um ficheiro UTF-8. Outras codificações válidas (mas não testadas) que suportam Out-File são: [[-Encodificação] {unknown | string | unicode | bigendianunicode | utf8 | utf7 | utf32 | ascii | default | oem}]. Pode também canalizar coisas para Out-File para dar ao ficheiro alguns dados de texto a armazenar, e também uma bandeira -append. Por exemplo:
echo $null | Out-File .\stuff.txt -Encoding ascii -Append
este exemplo não actualiza o carimbo da hora por alguma razão, mas este faz:
echo foo | Out-File .\stuff.txt -Encoding ascii -Append
Embora tenha o efeito secundário de anexar “foo” ao fim do ficheiro.
Se não tiver a certeza sobre a codificação que tem, descobri que o VS-Code tem uma característica elegante onde no canto inferior direito diz o que é a codificação. Penso que o Notepad++ também tem uma característica semelhante.