Düzenleme: yanılmışım;)
cmd.exe
UTF-8 kabul etmez ama bunu kaydetmek için emin olmak gerekir olmadanBOM
dosyasının başında.
İşte ikinci bir test. chcp 65001
Toplu iş dosyanızın başında kullanabilirsiniz .
Bir toplu iş dosyası UTF-8 türünde olamaz . ASCII olması gerekiyor. Cmd.exe
sadece başka bir formatı kabul etmiyor. Küçük bir test yaptım ve karakterlerini kullanabilirsin ama biraz çalışması gerekiyor.
İle bir dosya test.bat
oluşturun echo Å Ä Ö
. Biçimle kaydedin ANSI/ASCII
. A'yı açın cmd.exe
ve cmd.exe
kullanımınızdan emin olun Lucida Console
(Unicode karakterleri görüntülemek için).
Dosyayı yazdığınızda, karakterleri eski DOS karakterleri olarak gösterir. Burada bir çeviri tablosu görebilirsiniz .
Bir "Windows Ansi" ye geçtiğinizde - kod sayfası (yani Batı Avrupa Latin) chcp 1252
karakterleri ile doğru şekilde görüntülenir. Aynı zamanda kendi hizmetlerine aktarılırlarsa, bu işe bağlı olarak değişir.
Peki neden bunun için bir toplu iş dosyası oluşturuyorsunuz? Sadece VB.net'te kodlayamaz mısın?
2 Numarayı Düzenle:
Bu set nasıl Lucida Console
in cmd.exe
:
BOM
UTF-8 dosyasının başında 3 karakterlerdir. ( \xEF\xBB\xBF
).
VB.Net'te bir dosyayı yaratacak olmadan bir BOM
böyle:
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using