web-dev-qa-db-ja.com

バッチファイルの先頭にある奇妙な文字(´╗┐)

NotepadとNotepad ++の両方を使用して、Windowsでバッチファイルを操作しています。すべてが@echo offで始まるバッチファイルを実行すると、最初の行(2台のマシンで実行している場合)が´╗┐@echo offを読み取り、次にすべてのREM =その下の行も表示されます。

Notepad ++でエンコードを変更しようとしましたが、すでにUTF-8エンコードであり、正しいようです。

これらのファイルを正しく実行するために何をする必要がありますか?

33
Canadian Luke

正しく動作させるには [〜#〜] ansi [〜#〜] エンコーディングに設定する必要があることがわかります。これを設定するために、Encoding->Encode in ANSIを選択しました。

これを理解するために、コマンドラインからバッチファイルを作成しようとしました。

echo @echo off > batch.bat
echo REM Some comment... >> batch.bat
echo echo Hello world! >> batch.bat

次に、このファイルをNotepad ++で開き、右下隅のエンコードを確認しました。これにより、ANSIがUTF-8として読み取られました。なぜそれが最後のビットを追加するのかはわかりませんが、今は機能しているようです。

11
Canadian Luke

DOS ASCII UTF-8のバイトオーダーマークのエンコーディングのようです(0xEF 0xBB 0xBF)http://en.wikipedia.org/wiki/Byte_order_mark

Notepad ++では、「BOMなしのUTF-8」またはプレーンASCIIとしてエンコードしてみてください。この理由から、UTF-8でのBOMの使用はお勧めできません。ASCIIとの正確な下位互換性はありません。

28
baochan