Bearbeiten: Ich habe mich geirrt;)
cmd.exe
akzeptiert UTF-8, aber Sie müssen sicher sein, es ohne das BOM
am Anfang der Datei zu speichern.
Hier ist ein zweiter Test. Sie können chcp 65001
am Anfang Ihrer Batch-Datei verwenden.
Eine Batchdatei kann nicht vom Typ UTF-8 sein. Es muss ASCII sein. Cmd.exe
akzeptiert einfach kein anderes Format. Ich habe einen kleinen Test gemacht und du kannst deine Charaktere benutzen, aber es braucht etwas Arbeit.
Machen Sie eine Datei test.bat
mit echo Å Ä Ö
. Speichern Sie es mit Format ANSI/ASCII
. Öffnen Sie a cmd.exe
und stellen Sie sicher, dass Sie es cmd.exe
verwenden Lucida Console
(um die Unicode-Zeichen anzuzeigen).
Wenn Sie die Datei eingeben, werden Zeichen als alte DOS-Zeichen angezeigt. Sie können eine Übersetzung Chart sehen hier .
Wenn Sie zu einer "Windows Ansi" - Codepage (dh westeuropäisches Latein) wechseln, werden chcp 1252
die Zeichen korrekt angezeigt. Ob sie auch zu ihren jeweiligen Dienstprogrammen übertragen werden, hängt von diesem Dienstprogramm ab.
Aber warum erstellen Sie dafür eine Batch-Datei? Können Sie es nicht einfach in VB.net codieren?
Bearbeiten 2 #:
Dies ist , wie Sie festgelegt Lucida Console
in cmd.exe
:
Das BOM
sind 3 Zeichen am Anfang einer UTF-8-Datei. ( \xEF\xBB\xBF
).
In VB.net würden Sie eine Datei erstellen , ohne eine BOM
wie folgt aus :
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using