फ़ाइल फ़ॉर्मैट
TXT फ़ाइल क्या है? सादा टेक्स्ट, एन्कोडिंग और UTF-8
TXT सबसे सरल डॉक्यूमेंट फ़ॉर्मैट है: बस अक्षर और लाइन ब्रेक। फिर भी एन्कोडिंग, BOM और लाइन एंडिंग इसे सबसे ज़्यादा परेशान करने वाले फ़ॉर्मैट में से एक बना देते हैं। हम इन सबको एक-एक करके समझाते हैं।
लेखक: Hemen Dönüştür Editör Ekibiप्रकाशित: 9 मिनट में पढ़ें

TXT कंप्यूटर का सबसे सादा डॉक्यूमेंट फ़ॉर्मैट है: न बोल्ड, न फ़ॉन्ट, न पेज लेआउट, बस अक्षर और लाइन ब्रेक। यही सादगी इसे बेहद पोर्टेबल बनाती है। पचास साल पहले लिखी टेक्स्ट फ़ाइल आप आज खोल सकते हैं, और आज लिखी फ़ाइल बहुत संभव है कि दशकों बाद भी खुल जाए। लेकिन "सादा टेक्स्ट" उतना सरल नहीं जितना दिखता है। विशेष चिह्नों वाले अक्षरों का "é" या "?" बन जाना, सारी पंक्तियों का एक में सिमट जाना, फ़ाइल की शुरुआत में कोई अदृश्य अक्षर: ये सब TXT फ़ाइल के अंदर छिपे एक ही ब्योरे से आते हैं, उसकी कैरेक्टर एन्कोडिंग। यह लेख बताता है कि TXT फ़ाइलें कैसे काम करती हैं और इन समस्याओं को कैसे ठीक करें।
TXT फ़ाइल क्या है?
.txt एक्सटेंशन वाली फ़ाइल में टेक्स्ट अक्षरों के सिवा कुछ नहीं होता। न कोई हेडर, न मेटाडेटा, न फ़ॉर्मैटिंग; हर बाइट टेक्स्ट का ही हिस्सा है। असली सवाल यह है: कौन-सा बाइट किस अक्षर को दर्शाता है? इस मैपिंग को कैरेक्टर एन्कोडिंग कहते हैं, और TXT फ़ाइल आमतौर पर यह नहीं बताती कि वह कौन-सी एन्कोडिंग इस्तेमाल करती है। उसे खोलने वाले प्रोग्राम को अंदाज़ा लगाना पड़ता है।
संक्षिप्त इतिहास: ASCII से UTF-8 तक
ASCII पहली बार 1963 में ASA X3.4-1963 के रूप में प्रकाशित हुआ। यह 7 बिट इस्तेमाल करता है और 128 अक्षर परिभाषित करता है: अंग्रेज़ी वर्णमाला, अंक, विराम चिह्न और लाइन फ़ीड जैसे कंट्रोल कैरेक्टर। é, ñ, ö या तुर्की के ı और ş जैसे अक्षर ASCII का हिस्सा नहीं हैं, और देवनागरी तो बिल्कुल नहीं।
इस कमी को भरने के लिए कोड पेज आए, जिन्होंने 8-बिट बाइट के बाक़ी 128 मान अलग-अलग भाषाओं को दे दिए: पश्चिमी यूरोपीय भाषाओं के लिए Windows-1252 और ISO-8859-1, तुर्की के लिए Windows-1254 और ISO-8859-9, और ऐसे कई और। समस्या यह है कि एक ही बाइट अलग-अलग कोड पेज में अलग अक्षर का मतलब देता है। उदाहरण के लिए, बाइट FD, Windows-1252 में "ý" है लेकिन Windows-1254 में "ı"। जो प्रोग्राम ग़लत कोड पेज का अंदाज़ा लगाता है, वह टेक्स्ट ग़लत दिखाता है।
स्थायी हल Unicode था, जो हर लिपि के हर अक्षर को एक अनोखी संख्या देता है। इन संख्याओं को बाइट में बदलने का सबसे ज़्यादा इस्तेमाल होने वाला तरीक़ा UTF-8 है। Rob Pike के मुताबिक़ Ken Thompson ने सितंबर 1992 के आसपास एक रात New Jersey के एक डाइनर में प्लेसमैट पर UTF-8 डिज़ाइन किया था। इसकी मौजूदा परिभाषा नवंबर 2003 का RFC 3629 है: UTF-8, U+0000 से U+10FFFF तक हर अक्षर को 1 से 4 बाइट में एन्कोड करता है, और ASCII अक्षरों को ASCII जैसे ही एक-एक बाइट के रूप में लिखता है।
वेब दिखाता है कि UTF-8 कितना हावी हो चुका है: 15 अक्टूबर 2026 के W3Techs डेटा के अनुसार जिन वेबसाइटों की कैरेक्टर एन्कोडिंग ज्ञात है, उनमें से 99.1% UTF-8 इस्तेमाल करती हैं, उसके बाद 0.8% के साथ ISO-8859-1 और 0.2% के साथ Windows-1252 आते हैं।
TXT फ़ाइल के अंदर क्या होता है?
अक्षर और बाइट
"café" शब्द को UTF-8 और Windows-1252 में सेव करें, तो अलग-अलग बाइट मिलते हैं:
Text: c a f é
UTF-8: 63 61 66 C3 A9 (5 bytes)
Windows-1252: 63 61 66 E9 (4 bytes)
जो प्रोग्राम UTF-8 फ़ाइल को Windows-1252 मानकर पढ़ता है, वह C3 और A9 को दो अलग अक्षर "é" के रूप में दिखाता है। उलटी स्थिति में, जो प्रोग्राम Windows-1252 फ़ाइल को UTF-8 मानकर पढ़ता है, वह E9 को अमान्य मानता है और उसकी जगह "�" दिखाता है। अक्षर बिगड़ने की लगभग हर समस्या इन्हीं दो में से एक होती है।
BOM (बाइट ऑर्डर मार्क)
कुछ प्रोग्राम UTF-8 फ़ाइल की शुरुआत में EF BB BF बाइट रख देते हैं। यह U+FEFF अक्षर का UTF-8 रूप है, जिसे "यह फ़ाइल UTF-8 है" बताने वाले हस्ताक्षर के रूप में इस्तेमाल किया जाता है। RFC 3629 बताता है कि यह हस्ताक्षर हमेशा इन्हीं तीन बाइट के रूप में आता है। Unicode FAQ के अनुसार UTF-8 में BOM ज़रूरी नहीं है और केवल हस्ताक्षर का काम करता है, और जिन प्रोटोकॉल में फ़ाइल की शुरुआत में ASCII अक्षरों की उम्मीद की जाती है, वहाँ इससे बचना चाहिए। व्यवहार में BOM कुछ पुराने Windows प्रोग्राम और Excel को UTF-8 पहचानने में मदद करता है, लेकिन Unix शेल स्क्रिप्ट और कुछ सॉफ़्टवेयर द्वारा पढ़ी जाने वाली कॉन्फ़िगरेशन फ़ाइलों को तोड़ सकता है।
UTF-16 में BOM और भी अहम है, क्योंकि यह रीडर को बाइट क्रम बताता है: FF FE का मतलब little-endian और FE FF का मतलब big-endian UTF-16 है।
लाइन एंडिंग
पंक्ति का अंत बताने वाला अक्षर भी ऑपरेटिंग सिस्टम पर निर्भर करता है:
| सिस्टम | लाइन एंडिंग | बाइट |
|---|---|---|
| Windows | CRLF | 0D 0A |
| Linux, macOS | LF | 0A |
| क्लासिक Mac OS (OS X से पहले) | CR | 0D |
कई वर्षों तक Windows का Notepad केवल CRLF समझता था, इसलिए Linux पर लिखी फ़ाइल एक लंबी पंक्ति के रूप में दिखती थी। Microsoft ने 8 मई 2018 को Notepad में LF और CR सपोर्ट की घोषणा की, और यह बदलाव Windows 10 संस्करण 1809 के साथ उपयोगकर्ताओं तक पहुँचा।
TXT कहाँ इस्तेमाल होता है?
- नोट्स और मसौदे: ऐसे झटपट नोट्स जिन्हें फ़ॉर्मैटिंग की ज़रूरत नहीं।
- सॉफ़्टवेयर: README फ़ाइलें, लाइसेंस के पाठ, सोर्स कोड, कॉन्फ़िगरेशन फ़ाइलें और लॉग।
- डेटा का आदान-प्रदान: सिस्टम के बीच भेजी जाने वाली सादी सूचियाँ और एक्सपोर्ट।
- लंबे समय तक सहेजना: ऐसा टेक्स्ट जिसे किसी ऐप्लिकेशन पर निर्भर हुए बिना आर्काइव करना हो।
- एक्सेसिबिलिटी और प्रोसेसिंग: स्क्रीन रीडर, सर्च इंजन और टेक्स्ट विश्लेषण टूल के लिए सबसे साफ़ इनपुट।
खूबियाँ और कमज़ोरियाँ
खूबियाँ: हर डिवाइस और ऑपरेटिंग सिस्टम इसे खोलता है। फ़ाइलें बहुत छोटी होती हैं। प्रोग्राम के संस्करणों पर कोई निर्भरता नहीं और ख़राब होने का जोखिम बहुत कम। Git जैसे वर्ज़न कंट्रोल सिस्टम बदलाव पंक्ति-दर-पंक्ति दिखा सकते हैं। इसमें मैक्रो या एम्बेड किए ऑब्जेक्ट नहीं हो सकते, जो इसे सुरक्षित बनाता है।
कमज़ोरियाँ: यह फ़ॉर्मैटिंग, इमेज, टेबल या लिंक नहीं रख सकता। एन्कोडिंग फ़ाइल में दर्ज नहीं होती, इसलिए उसका ग़लत अंदाज़ा लग सकता है। लाइन एंडिंग के फ़र्क़ अलग-अलग सिस्टम पर छोटी लेकिन खीझ भरी दिक़्क़तें पैदा करते हैं। अगर आपको हेडिंग और सूचियों जैसी संरचना चाहिए, तो Markdown बेहतर विकल्प है।
कौन-से प्रोग्राम TXT खोलते हैं?
Windows पर Notepad, macOS पर TextEdit, और Linux पर gedit जैसे एडिटर, सभी TXT खोलते हैं, और ब्राउज़र टेक्स्ट फ़ाइलें सीधे दिखा सकते हैं। Visual Studio Code, Notepad++ और Sublime Text जैसे एडवांस एडिटर स्टेटस बार में एन्कोडिंग और लाइन एंडिंग का प्रकार दिखाते हैं और एक क्लिक में दोनों बदलने देते हैं, जिससे वे एन्कोडिंग की समस्याएँ पहचानने के सबसे व्यावहारिक टूल बन जाते हैं।
आम समस्याएँ और उनके हल
विशेष चिह्नों वाले अक्षर "é" या "ü" जैसे दिखते हैं
फ़ाइल UTF-8 में सेव हुई थी, लेकिन पढ़ने वाला प्रोग्राम उसे Windows-1252 मान रहा है। ऐसे एडिटर में, जो एन्कोडिंग चुनने देता है, फ़ाइल को UTF-8 के रूप में दोबारा खोलें। अगर कोई CSV या टेक्स्ट फ़ाइल Excel में ऐसी दिखती है, तो उसे UTF-8 with BOM के रूप में सेव करने से आमतौर पर बात बन जाती है।
अक्षरों की जगह "?" या "�" आ गए हैं
फ़ाइल किसी पुराने कोड पेज में सेव हुई थी, लेकिन उसे UTF-8 मानकर पढ़ा जा रहा है। अपने एडिटर में सही कोड पेज चुनकर उसे खोलें, फिर UTF-8 के रूप में सेव करें। अगर टेक्स्ट सचमुच "?" अक्षरों के साथ सेव हो चुका है, तो मूल अक्षर जा चुके हैं और आपको स्रोत पर लौटना होगा।
सारा टेक्स्ट एक ही पंक्ति में दिखता है
कोई पुराना एडिटर LF लाइन एंडिंग नहीं समझता। अपडेटेड Notepad या कोई एडवांस एडिटर इस्तेमाल करें, या लाइन एंडिंग को CRLF में बदलें।
फ़ाइल की शुरुआत में कोई अदृश्य अक्षर है
वह आमतौर पर BOM होता है। अगर कोई स्क्रिप्ट या कॉन्फ़िगरेशन फ़ाइल अपनी पहली पंक्ति पर अटकती है, तो उसे "UTF-8 without BOM" के रूप में सेव करें।
TXT फ़ाइलें कन्वर्ट करने के टिप्स
हमारे कन्वर्टर पर TXT फ़ाइलें हमारे सर्वर पर अपलोड होती हैं और 30 मिनट के भीतर हटा दी जाती हैं। एन्कोडिंग अपने-आप पहचानी जाती है: पहले BOM जाँचा जाता है (UTF-8, UTF-16 little- और big-endian); BOM न हो, तो देखा जाता है कि फ़ाइल मान्य UTF-8 है या नहीं; अगर वह मान्य UTF-8 नहीं है, तो उसे पुराने तुर्की Windows कोड पेज Windows-1254 के रूप में पढ़ा जाता है। जिन फ़ाइलों में बहुत सारे NUL बाइट होते हैं, उन्हें टेक्स्ट के बजाय बाइनरी माना जाता है, और आपको "यह टेक्स्ट फ़ाइल नहीं है" का संदेश मिलता है।
- TXT से Word और TXT से PDF में हर पंक्ति एक पैराग्राफ़ बनती है और ख़ाली पंक्तियाँ बनी रहती हैं। शुरुआती इंडेंटेशन (कोड, कविता या क्रमांकित धाराएँ) को न टूटने वाले स्पेस में बदल दिया जाता है ताकि वह खोए नहीं, और शुरुआती टैब चार स्पेस बन जाते हैं।
- TXT से Markdown तब अच्छी शुरुआत है जब आप बाद में सादे टेक्स्ट में हेडिंग और सूचियाँ जोड़ना चाहते हैं।
- उलटी दिशा में PDF से TXT और Word से TXT फ़ॉर्मैटिंग हटा देते हैं और हेडिंग व पैराग्राफ़ को ख़ाली पंक्तियों से अलग करते हैं। हमारी बनाई TXT फ़ाइलें UTF-8 with BOM के रूप में सेव होती हैं, ताकि Notepad और Excel जैसे प्रोग्राम में विशेष अक्षर सही दिखें।
अक्सर पूछे जाने वाले सवाल
TXT फ़ाइल को किस एन्कोडिंग में सेव करें?
नई फ़ाइलों के लिए UTF-8। यह हर भाषा को सपोर्ट करता है और वेब पर लगभग सार्वभौमिक हो चुका है। अगर फ़ाइल ऐसा सॉफ़्टवेयर पढ़ेगा जो बिना BOM वाला UTF-8 चाहता है, तो BOM न लगाएँ; अगर वह Excel जैसे प्रोग्राम में खुलेगी, तो लगाएँ।
UTF-8 और UTF-8 with BOM में क्या अंतर है?
सामग्री एक जैसी है; BOM वाला संस्करण बस EF BB BF बाइट से शुरू होता है। यह हस्ताक्षर कुछ प्रोग्राम को एन्कोडिंग पहचानने में मदद करता है, लेकिन दूसरों में अदृश्य पहले अक्षर के रूप में दिख सकता है।
TXT और RTF में क्या अंतर है?
TXT में केवल अक्षर होते हैं। RTF टेक्स्ट में रखे कंट्रोल कमांड के ज़रिए बोल्ड, इटैलिक, फ़ॉन्ट और टेबल जैसी फ़ॉर्मैटिंग रखता है। अगर आपको फ़ॉर्मैटिंग नहीं चाहिए, तो TXT ज़्यादा सरल और पोर्टेबल है।
TXT फ़ाइल की एन्कोडिंग कैसे पता करें?
Visual Studio Code और Notepad++ जैसे एडिटर स्टेटस बार में एन्कोडिंग दिखाते हैं। Notepad के मौजूदा संस्करण भी स्टेटस बार में एन्कोडिंग और लाइन एंडिंग का प्रकार दिखाते हैं।
क्या TXT फ़ाइल में वायरस हो सकता है?
सादी टेक्स्ट फ़ाइल में अपने-आप में कोई चलने वाला कोड नहीं होता। "document.txt.exe" जैसे दोहरे एक्सटेंशन से सावधान रहें; Windows में फ़ाइल एक्सटेंशन दिखाई देने लायक बनाने से यह चाल पकड़ना आसान हो जाता है।
स्रोत
- IETF RFC 3629: UTF-8, a transformation format of ISO 10646 (नवंबर 2003)
- Unicode Consortium: UTF-8, UTF-16, UTF-32 and BOM FAQ
- Rob Pike: UTF-8 history
- W3Techs: Usage statistics of character encodings for websites
- Microsoft: Introducing extended line endings support in Notepad (8 मई 2018)
- Wikipedia: ASCII (द्वितीयक स्रोत)


