質問: ### 前提・実現したいこと PowerShellでechoコマンドを使ってファイルを作成する(Procfile, requirements.txt 等)。 作成したファイルをAtomで開いて、内容を確認する。 ### 発生している問題・エラーメッセージ echoコマンドで作成したファイルをAtomで開くと、文字と文字の間に半角スペースが入っている。 また、文字列の先頭に��というマークがついている。 例) PowerShellで ``` echo "web: gunicorn myApp.wsgi --log-file -" > Procfile ``` として、Procfileを作成する。 作成されたProcfileをAtomで開くと ``` ��w e b : g u n i c o r n m y A p p . w s g i - - l o g - f i l e - ``` というように、文字の間に半角スペースが入り、先頭に記号が付与されている。 ### 試したこと ・PowerShell文字コードをchcpで確認→932 ・PowerShellの文字コードをUTF‐8に変更し、上記echoコマンドを再度実行→結果変わらず ・Atomの文字コードはUTF‐8 ### 補足情報(言語/FW/ツール等のバージョンなど) OS Windows10 Home お力を貸して頂ければ幸いです。よろしくお願いいたします。
回答: `echo`は`Write-Output`コマンドレットのエイリアスとなり、既定だとUTF16出力だったはずです。 標準コマンドレットでは`Out-File`の`Encoding`パラメーターを指定することでUTF-8**(BOMつき)**でファイルへ出力ができます。 もしBOMなしのUTF-8で出力したい場合は、.NET Framework のメソッドを直接呼び出す必要があります。 ``` # .NET 呼び出し例 [System.IO.File]::WriteAllText( $出力パス, $書き出したいテキスト, [System.Text.UTF8Encoding]$false) # 参考ページ:http://blog.shibata.tech/entry/2016/10/02/154329 ```