編集:私は間違っていた;)
cmd.exe
UTF-8を受け入れるんが、あなたはそれを保存することを確認する必要がなくてBOM
、ファイルの先頭に。
これが2番目のテストです。chcp 65001
バッチファイルの先頭で使用できます。

バッチファイルを UTF-8タイプにすることはできません。ASCIIである必要があります。Cmd.exe
別の形式を受け入れないだけです。私は簡単なテストを行い、キャラクターを使用できますが、いくつかの作業が必要です。
でファイルを作成test.bat
しecho Å Ä Ö
ます。formatで保存しますANSI/ASCII
。を開き、使用cmd.exe
方法を確認します(Unicode文字を表示するため)。cmd.exe
Lucida Console
ファイルを入力すると、古いDOS文字として文字が表示されます。ここで翻訳チャートを見ることができます。
「Windows Ansi」に切り替えると、文字を含むコードページ(つまり、西ヨーロッパラテン語)chcp 1252
が正しく表示されます。それらがそれぞれのユーティリティに転送されるかどうかは、そのユーティリティに依存します。
しかし、なぜこれのためにバッチファイルを作成するのですか?VB.netでコーディングすることはできませんか?

編集2#:
これはあなたが設定Lucida Console
する方法ですcmd.exe
:

BOM
UTF-8ファイルの先頭の3つの文字です。(\xEF\xBB\xBF
)。
VB.netでは、次のようなファイルを作成しますBOM
。
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using