समझें कि उच्चारण चिह्न कभी-कभी बिगड़कर क्यों दिखते हैं और अदृश्य पंक्ति-अंत अपने अंदर क्या छिपाए बैठे हैं।
इस पाठ को Kodokon में खोलेंमशीन को पता ही नहीं होता कि अक्षर A क्या है। वह सिर्फ़ संख्याओं को संभालती है। इसलिए पाठ लिखने के लिए सबको एक मिलान तालिका पर सहमत होना पड़ा: संख्या 65 का अर्थ है A, 66 का अर्थ है B, और इसी तरह आगे। इस परंपरा को एन्कोडिंग कहते हैं। सबसे पुरानी एन्कोडिंग, ASCII, 1960 के दशक की है और उसमें सिर्फ़ अंग्रेज़ी वर्णमाला आती थी: न é, न ç, न ü, न देवनागरी का एक भी अक्षर, और न ही एक भी चीनी वर्ण।
फिर हर देश ने अपनी अलग तालिका बना ली, और अफ़रा-तफ़री मच गई: रूसी तालिका से खोली गई कोई फ़्रांसीसी फ़ाइल बेतुके अक्षरों का ढेर बनकर सामने आती थी। आधुनिक समाधान का नाम है Unicode, एक अकेली सूची जो हर भाषा के हर वर्ण को एक संख्या देती है, इमोजी समेत। और UTF-8 उन संख्याओं को फ़ाइल में लिखने का मानक तरीक़ा है। आज नियम सरल है और इसका कोई अपवाद नहीं: अपनी फ़ाइलें हमेशा UTF-8 में सहेजें।
UTF-8 में लिखा, UTF-8 में पढ़ा -> Creme brulee (चिह्न सही)
UTF-8 में लिखा, Latin-1 में पढ़ा -> Crème brûlée
Latin-1 में लिखा, UTF-8 में पढ़ा -> Cr?me br?l?eदूसरी अदृश्य चीज़: पंक्ति-अंत (line ending)। जब आप Enter दबाते हैं, तो फ़ाइल में कोई लकीर नहीं खिंचती। उसकी जगह एक या दो अदृश्य वर्ण जुड़ जाते हैं, और यहाँ भी सिस्टम आपस में कभी सहमत नहीं हुए। macOS और Linux एक ही वर्ण इस्तेमाल करते हैं, LF (line feed), जिसे \n लिखा जाता है। Windows लगातार दो वर्ण इस्तेमाल करता है, CRLF (carriage return फिर line feed), जिसे \r\n लिखा जाता है। यह सीधे टाइपराइटर की देन है, जहाँ दो अलग-अलग हरकतें करनी पड़ती थीं: गाड़ी को वापस पीछे धकेलना, फिर एक पंक्ति नीचे लुढ़काना।
स्क्रीन पर आपको जो दिखता है:
नमस्ते
आप कैसे हैं
फ़ाइल में असल में क्या है:
macOS / Linux (LF) नमस्ते\nआप कैसे हैं
Windows (CRLF) नमस्ते\r\nआप कैसे हैंé की जगह é दिखता है, तो असल में क्या हो रहा होता है?