एक्सपोर्ट की गई डायरी फ़ाइल में बिगड़े हुए इमोजी की पहचान और समाधान कैसे करें
यदि एक्सपोर्ट की गई डायरी में इमोजी गलत दिखते हैं, तो पहले यह निर्धारित करें कि क्या वर्णों को गलत एन्कोडिंग के साथ डिकोड किया गया था, एक्सपोर्ट के दौरान बदल दिया गया था, या सही ढंग से डिकोड किया गया था लेकिन ऐप या फ़ॉन्ट द्वारा प्रदर्शित नहीं किया जा सकता है। एक डुप्लिकेट फ़ाइल पर काम करें, मूल बाइट्स को सुरक्षित रखें, और एक सादे टेक्स्ट एडिटर और डायरी इम्पोर्टर में उसी टेक्स्ट की तुलना करें। एन्कोडिंग सेटिंग बदलने से डिकोडिंग बेमेल ठीक हो सकता है; यह पहले से बदले गए या हटाए गए डेटा को पुनर्स्थापित नहीं कर सकता है।
पहचानें कि “बिगड़ा हुआ” (garbled) कैसा दिखता है
प्रभावित प्रविष्टि (entry) को ध्यान से देखें। जहाँ 😀 होना चाहिए वहाँ अप्रत्याशित वर्णों की स्ट्रिंग जैसे `😀` दिखना यह संकेत दे सकता है कि UTF-8 बाइट्स को एक अलग एन्कोडिंग का उपयोग करके समझा गया था। इसे आमतौर पर मोजीबाके (mojibake) कहा जाता है: प्रदर्शित वर्ण गलत हैं क्योंकि बाइट्स को गलत मान्यताओं के तहत डिकोड किया गया था। यह एक सुराग है, इस बात का प्रमाण नहीं कि फ़ाइल किस एन्कोडिंग से तैयार की गई थी।
एक दृश्यमान `` अलग होता है। वह U+FFFD है, यूनिकोड का प्रतिस्थापन वर्ण (replacement character), जिसका उपयोग उस वर्ण के विकल्प के रूप में किया जाता है जिसे व्याख्यायित नहीं किया जा सकता। यूनिकोड की [शब्दावली](https://www.unicode.org/glossary/#replacement_character) इसे प्रतिस्थापन ग्लिफ़ (replacement glyph) से अलग करती है: एक फ़ॉन्ट या रेंडरर वर्ण न बना पाने पर एक बॉक्स दिखा सकता है, जबकि अंतर्निहित वर्ण अभी भी बरकरार हो सकता है। यदि केवल कुछ इमोजी बॉक्स के रूप में दिखाई देते हैं, तो फ़ाइल की एन्कोडिंग बदलने से पहले किसी अन्य आधुनिक ऐप या फ़ॉन्ट में जाँच करें।
समस्या निवारण से पहले एक बेसलाइन सुरक्षित रखें
एक्सपोर्ट की एक प्रति बनाएँ और मूल फ़ाइल को अपरिवर्तित रखें। फ़ाइल का एक्सटेंशन, इसे एक्सपोर्ट करने वाला ऐप, और किसी एक प्रभावित वाक्यांश के लिए आपको क्या दिखाई देता है, उसे रिकॉर्ड करें। यदि संभव हो, तो डायरी के किसी ज्ञात इमोजी की तुलना स्रोत ऐप या पिछले एक्सपोर्ट की उसी प्रविष्टि से करें। एकमात्र प्रति को बार-बार खोलने और सहेजने से बचें: एक टेक्स्ट एडिटर नए डिकोड किए गए टेक्स्ट को बाइट्स के रूप में वापस लिख सकता है, जिससे एक प्रतिवर्ती (reversible) प्रदर्शन प्रयोग स्थायी हो सकता है।
प्रतिलिपि को किसी ऐसे एडिटर में सादे टेक्स्ट के रूप में खोलें जो आपको एन्कोडिंग चुनने की अनुमति देता है। पहले डायरी ऐप द्वारा प्रलेखित एन्कोडिंग का प्रयास करें; यदि यह अज्ञात है और फ़ाइल एक सामान्य आधुनिक टेक्स्ट एक्सपोर्ट है, तो UTF-8 निरीक्षण करने के लिए एक उचित उम्मीदवार है, न कि मूल फ़ाइल पर सीधे सहेजने की कोई धारणा। प्रत्येक उम्मीदवार के तहत प्रभावित टेक्स्ट और आसपास के सामान्य वर्णों की तुलना करें। पूरी फ़ाइल में एक सुसंगत परिणाम उस इमोजी की तुलना में अधिक मजबूत प्रमाण है जो संयोग से सही दिखता है।
फ़ाइल को दोबारा लिखे बिना डिकोडिंग का परीक्षण करें
जब एडिटर के एन्कोडिंग व्यू को बदलने से वह अजीब क्रम अपेक्षित इमोजी में बदल जाता है और आसपास का टेक्स्ट भी पढ़ने योग्य हो जाता है, तो एक्सपोर्ट में बरकरार बाइट्स हो सकते हैं जिन्हें गलत तरीके से समझा गया था। प्रतिलिपि को बिना सहेजे बंद करके और उसे उसी उपयुक्त सेटिंग के साथ फिर से खोलकर पुष्टि करें। फिर जाँचें कि क्या डायरी ऐप का इम्पोर्ट या ओपन वर्कफ़्लो कोई प्रलेखित एन्कोडिंग विकल्प प्रदान करता है; किसी भी वास्तविक पुनः इम्पोर्ट के लिए उस वर्कफ़्लो को प्राथमिकता दें।
[यूनिकोड UTF FAQ](https://www.unicode.org/faq/utf_bom.html) बताता है कि खराब तरीके से बने UTF-8 बाइट क्रम किसी त्रुटि को ट्रिगर कर सकते हैं या उन्हें U+FFFD जैसे मार्कर के साथ संभाला जा सकता है। इसका मतलब है कि डिकोडर ने प्रदर्शित या इम्पोर्ट करते समय पहले ही अमान्य इनपुट को बदल दिया होगा। उस चरण के बाद एन्कोडिंग बदलने से मूल बाइट्स अनिवार्य रूप से पुनर्प्राप्त नहीं होंगे। अपनी एकमात्र प्रति पर ऐसे “मरम्मत” (repair) या रूपांतरण विकल्पों का उपयोग न करें जो बिना बताए गैर-डिकोड करने योग्य वर्णों को बदल देते हैं।
एन्कोडिंग समस्याओं को अनुपलब्ध ग्लिफ़ से अलग करें
यदि इमोजी किसी अन्य व्यूअर में सही ढंग से दिखाई देता है, तो फ़ाइल को बदलने से पहले उस तुलना को प्रमाण के रूप में सुरक्षित रखें। केवल रूप-रंग बदलने के लिए एक्सपोर्ट को दोबारा लिखने से बचें।
यदि सभी व्यूअर्स में एक ही स्थिति पर U+FFFD या सामान्य प्रश्न चिह्न दिखाई देता है, तो स्रोत डायरी या पहले के एक्सपोर्ट से तुलना करें। फ़ाइल में संग्रहीत किसी प्रतिस्थापन को फ़ॉन्ट बदलकर पुनर्स्थापित नहीं किया जा सकता है। पुनर्प्राप्ति इस बात पर निर्भर करती है कि क्या किसी अन्य प्रति में वह वर्ण सुरक्षित है।
CSV और JSON को अलग-अलग इम्पोर्ट पथ मानें
`.csv` एक्सटेंशन आपको यह नहीं बताता कि किस वर्ण एन्कोडिंग का उपयोग किया गया था, और स्प्रेडशीट प्रोग्राम इम्पोर्ट सेटिंग्स लागू कर सकते हैं। एक्सेल डेस्कटॉप के लिए, माइक्रोसॉफ्ट अपने [टेक्स्ट और CSV इम्पोर्ट/एक्सपोर्ट गाइड](https://support.microsoft.com/en-us/excel/get-started/import-or-export-text-txt-or-csv-files) में **Data > From Text/CSV** और टेक्स्ट इम्पोर्ट विज़ार्ड के माध्यम से टेक्स्ट इम्पोर्ट करने का विवरण देता है। लोड करने से पहले पूर्वावलोकन का उपयोग करें: इमोजी, पंक्ति और स्तंभ सीमाओं और आस-पास के टेक्स्ट की पुष्टि करें। एक सही पूर्वावलोकन इस बात का प्रमाण है कि चयनित इम्पोर्ट पथ फ़ाइल को इच्छानुसार पढ़ता है; यह स्रोत को ओवरराइट करने का कारण नहीं है।
JSON के लिए, फ़ाइल को सुरक्षित रखें और इसे CSV मानने के बजाय JSON-सचेत इम्पोर्टर का उपयोग करें। [RFC 8259 JSON विनिर्देश](https://www.rfc-editor.org/rfc/rfc8259#section-8.1) एक बंद पारिस्थितिकी तंत्र के बाहर सिस्टम के बीच आदान-प्रदान किए गए JSON के लिए UTF-8 की आवश्यकता तय करता है। यह यह भी बताता है कि JSON स्ट्रिंग वर्णों को सीधे या एस्केप के साथ दर्शा सकती हैं। `\u263A` जैसा एस्केप देखना स्वतः ही करप्शन नहीं है; एक JSON पार्सर को मान्य एस्केप की व्याख्या करनी चाहिए। यदि JSON अमान्य है या इम्पोर्टर पार्स त्रुटि की रिपोर्ट करता है, तो रुकें और अनुमान के आधार पर विराम चिह्नों या बाइट्स को संपादित करने के बजाय सटीक फ़ाइल को बनाए रखें।
तय करें कि पुनः प्रयास करना है, पुनः एक्सपोर्ट करना है, या रुकना है
इस क्रम का पालन करें: (1) स्रोत डायरी की तुलना एक्सपोर्ट से करें; (2) अपेक्षित एन्कोडिंग और यदि उचित हो तो UTF-8 व्यू का उपयोग करके डुप्लिकेट का निरीक्षण करें; (3) अनुपलब्ध-ग्लिफ़ व्यवहार के लिए किसी अन्य व्यूअर की जाँच करें; (4) सही CSV या JSON इम्पोर्टर के माध्यम से फ़ाइल का पूर्वावलोकन करें; और (5) यदि स्रोत अभी भी इमोजी को सही ढंग से प्रदर्शित करता है तो प्रलेखित टेक्स्ट एन्कोडिंग के साथ एक्सपोर्ट का पुनः प्रयास करें। एक समय में एक ही वैरिएबल बदलें और प्रत्येक परिणाम को अलग रखें।
यदि कोई भी व्यू या इम्पोर्टर मूल वर्ण को प्रकट नहीं करता है, और फ़ाइल में केवल प्रतिस्थापन वर्ण या अन्य बदले गए डेटा हैं, तो रीकोडिंग द्वारा पुनर्प्राप्ति का वादा न करें। डिकोडिंग सेटिंग्स बदलने से यह अनुमान नहीं लगाया जा सकता कि कौन सा इमोजी छोड़ा गया था। किसी अन्य एक्सपोर्ट, बैकअप या बरकरार डायरी प्रविष्टि की तलाश करें, फिर एक नई फ़ाइल में फिर से एक्सपोर्ट करें और उस पर निर्भर होने से पहले उसके पूर्वावलोकन की पुष्टि करें।
