web-dev-qa-db-ja.com

PowerShellで出力をリダイレクトすると、UTF-8でエンコードされたテキストが生成されます

私が行った場合 echo zzz > test.txt次にtest.txtを開くと、次のように表示されます。

ÿþz z z 

多分それはUTF-8でエンコードされていません-多分それはUTF-16idkです。ただし、1バイトのエンコーディングを出力できることが望ましい場合もあります。たぶん、プログラムがJPEG画像などのバイナリファイルを出力しているようです。

とにかく、Powershellでリダイレクトされた出力がマルチバイトエンコーディングではなくシングルバイトエンコーディングを使用して行われるようにする方法はありますか?

1
neubert

以下は、現在のWindowsANSIコードページに文字列を書き出します。これはおそらく、シングルバイトでエンコードされた文字列を出力するために通常実行したいことです。

echo zzz | Out-File -Encoding default test.txt

ASCIIを使用することもできます。

echo zzz | Out-File -Encoding ascii test.txt

バイト配列を出力するには、次のようにします。

$myByteArray = New-Object Byte[] 100   # Array of 100 bytes.
[io.file]::WriteAllBytes('Test.dat', $myByteArray)
2
dangph