संपादित करें: मैं गलत था;)
cmd.exeको स्वीकार करता है UTF-8 लेकिन आप इसे बचाने के लिए सुनिश्चित करने की आवश्यकता है बिनाBOM फ़ाइल की शुरुआत में।
यहाँ एक दूसरी परीक्षा है। आप chcp 65001अपने बैच-फ़ाइल की शुरुआत में उपयोग कर सकते हैं ।

एक बैच फ़ाइल प्रकार UTF-8 की नहीं हो सकती। इसे ASCII होना चाहिए। Cmd.exeबस एक और प्रारूप स्वीकार नहीं करता है। मैंने एक छोटा परीक्षण किया और आप अपने पात्रों का उपयोग कर सकते हैं लेकिन इसके लिए कुछ काम करने की आवश्यकता है।
के test.batसाथ एक फ़ाइल बनाएँ echo Å Ä Ö। इसे प्रारूप के साथ सहेजें ANSI/ASCII। एक खोलें cmd.exeऔर सुनिश्चित करें कि आपके 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