एक बैच फ़ाइल [डुप्लिकेट] की शुरुआत में अजीब चरित्र (´╗┐)


30

मैं नोटपैड, और नोटपैड ++ दोनों का उपयोग करके विंडोज में बैच फ़ाइलों के साथ काम कर रहा हूं। जब मैं बैच फ़ाइलों को चलाता हूं, जो सभी के साथ शुरू होता है @echo off, तो मुझे पहली पंक्ति (जब दो अलग-अलग मशीनों पर चल रही है) रीडिंग दिखाई देती है ´╗┐@echo off, और फिर नीचे दी गई सभी आरईएम लाइनें भी दिखाई देती हैं।

मैंने नोटपैड ++ में एन्कोडिंग को बदलने की कोशिश की है, लेकिन यह दावा करता है कि वे पहले से ही UTF-8 एन्कोडिंग पर हैं, जो सही प्रतीत होता है।

इन फ़ाइलों को ठीक से चलाने के लिए मुझे क्या करने की आवश्यकता है?


@ ल्लू मेरा सवाल नोटपैड ++ के बारे में है
कनाडाई ल्यूक पुनर्जीवित मोनाया

ध्यान दें कि नियमित नोटपैड, जब यूटीएफ 8 के साथ बचत करते हैं, तो बीओएम के बिना बचत करने की अनुमति नहीं देता है, और उन पात्रों को जोड़ देगा।
dmcontador

जवाबों:


26

यह UTF-8 के लिए बाइट ऑर्डर मार्क के डॉस ASCII एन्कोडिंग की तरह दिखता है (0xEF 0xBB 0xBF): http://en.wikipedia.org/wiki/Byte_order_mark

नोटपैड ++ में इसे "UTF-8 विदाउट बॉम" या सादे ASCII के रूप में एन्कोड करने का प्रयास करें। मुझे लगता है कि यूटीएफ -8 के लिए बीओएम का उपयोग इस कारण से हतोत्साहित किया जाता है, यह एएससीआईआई के साथ बिल्कुल पीछे नहीं है।


2
बिल्कुल सही है, 'DOS ASCII' को छोड़कर, DOS कोड पृष्ठ 850 है, जैसा कि पायथन में प्रयोग द्वारा दिखाया गया है:>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
deltab

@ डैल्टैब आह, अच्छा लगा। मुझे यकीन नहीं था कि एन्कोडिंग को विशेष रूप से कहा जाता था, बस मैंने ╗┐एमएस-डॉस 5 / विंडोज 3.11 के दिनों से लाइन-आर्ट पात्रों को नहीं देखा था । आधुनिक विंडोज को संगतता के लिए उस एन्कोडिंग के साथ बैच फ़ाइलों को चलाना चाहिए?
बाउचन १han

1
नई पाठ फ़ाइल बनाने के लिए Visual Studio का उपयोग करते समय मैं इसमें भाग गया।
सैम गोल्डबर्ग

9

ठीक से काम करने के लिए इसे ANSI एन्कोडिंग पर सेट करने की आवश्यकता है । इसे सेट करने के लिए, मैंने ANSI में Encoding -> Encode को चुना ।

यह जानने के लिए, मैंने कमांड लाइन से एक बैच फ़ाइल बनाने की कोशिश की।

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

मैंने तब नोटपैड ++ में इस फाइल को खोला, और निचले दाएं कोने में एन्कोडिंग की जाँच की, जिसने एएनएसआई को यूटीएफ -8 के रूप में पढ़ा । मुझे नहीं पता कि यह उस अंतिम बिट को क्यों जोड़ता है, लेकिन यह अब काम करने लगता है।


ANSI वास्तव में एन्कोडिंग नहीं है। संभवतः यह आपके विंडोज सिस्टम के डिफॉल्ट कोड पेज को संदर्भित करता है । यह विन्यास के आधार पर एक प्रणाली से दूसरी प्रणाली में भिन्न होगा।
कॉडी ग्रे

यह सही नहीं है। BOM एक कैरेक्टर सेट एन्कोडिंग विरूपण साक्ष्य है।
थोरबजोरन रेव एंडरसन

@ ThorbjørnRavnAndersen कौन गलत है, मैं या कोडी?
कनाडाई ल्यूक ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.