नोटपैड ++ में यूटीएफ -8 के लिए एएनएसआई


25

मेरे पास ANSI में एक टेक्स्ट इनकोडिंग है:

ANSI पाठ फ़ाइल

जब मैंने इसे UTF-8 में बदलने की कोशिश की (नोटपैड ++ मेन्यू एनकोडिंग> UTF-8 का उपयोग करके), मुझे कुछ अजीब अक्षर मिले:

UTF-8 पाठ फ़ाइल

मुझे लगा कि UTF-8 ANSI का सुपरसेट था और मैं बाद में इस तरह के मुद्दे नहीं उठाता। वैसे भी क्या मैं उन अजीब चरित्रों की स्पष्टता से बच सकता हूं?


मुझे नहीं लगता कि बाद की छवि में क्या अजीब है
phuclv

मेरा मतलब गैर-प्रदर्शन योग्य पात्रों से था। इससे बचने का कोई उपाय?
user3658425

क्या आपने प्रश्न संपादित किया है? मुझे लगता है कि मैं छवियों को उलट देख रहा हूं
phuclv

1
हाँ क्षमा करें, मैंने अपना अंतिम संपादन ठीक उसी समय धकेला जब किसी ने चित्र जोड़े, इसके अतिरिक्त मिटा दिया: यदि आप उन्हें वापस जोड़ सकते हैं तो यह बहुत अच्छा होगा!
user3658425

जवाबों:


38

यूटीएफ -8 एक चारसेट नहीं है, सिर्फ यूनिकोड के लिए एन्कोडिंग है। पहले 128 अक्षर ASCII के समान हैं लेकिन उच्च 128 बाइट्स में भिन्न हैं। उच्च बिट सेट (या> = 0x80) के साथ एक बाइट ASCII में एक विस्तारित चरित्र है जबकि UTF-8 में यह एक बहु-बाइट अनुक्रम के प्रारंभ बाइट को इंगित करता है। ऊपर 0x93 या 0x94 का मामला है। हालाँकि, मुझे फ़ाइल में कुछ भी अजीब नहीं दिख रहा है। वे स्मार्ट उद्धरण या उद्धरण और खोलने के लिए अलग-अलग रूपों के साथ उद्धरण हैं, जो आप अक्सर एमएस वर्ड जैसे समृद्ध पाठ संपादक का उपयोग करते समय देखते हैं

संपादित करें

सवाल संपादित किया है। मुझे लगता है कि ऐसा इसलिए है क्योंकि आपने गलत टूल चुना है। encodeमेनू आइटम एन्कोडिंग बदल रहा है, तो आप गलत चरित्र को प्रदर्शित करता है के लिए कर रहे हैं। यह सिर्फ डिस्क से पढ़े गए उसी बाइट अनुक्रम को एक और एन्कोडिंग के रूप में मानता है। चूंकि ASCII और UTF-8 अलग-अलग हैं, इसलिए आपके पास एक अनलॉक्ड UTF-8 बाइट अनुक्रम होगा और ऊपर परिणाम देखें। convert to UTF-8पूरे इनपुट बाइट्स को बदलने के लिए आपको इसका चयन करने की आवश्यकता है

नोटपैड एन्कोडिंग

आपने ANSI और ASCII को भी भ्रमित किया है। ANSI अक्सर Windows-1252 को संदर्भित करता है, जो कि अंग्रेजी विंडोज और कुछ पश्चिमी यूरोप की भाषाओं में इस्तेमाल किया जाने वाला एक कैरेक्टर सेट है। यह ISO 8859-1 का सुपरसेट है, हालाँकि ISO 8859-1 को ANSI भी कहा जा सकता है। ISO 8859-1 भी यूनिकोड का पहला 256 कोडपॉइंट है, इसलिए यह यूनिकोड का सबसेट है, लेकिन यह UTF-8 एन्कोडिंग के अनुकूल नहीं है। ASCII एक 7-बिट वर्ण सेट है और ANSI का सबसेट है जो 8 बिट्स द्वारा एन्कोड किया गया है, लेकिन इसे कभी-कभी ANSI के रूप में भी संदर्भित किया जाता है, हालांकि बहुत सही नहीं है

https://en.wikipedia.org/wiki/ANSI_character_set

सामान्य तौर पर चरित्र सेट के बीच संबंध इस प्रकार है

ASCII < ISO 8859-1 < Windows-1252
        ^
        Unicode

धन्यवाद, एन्कोडिंग के साथ चारसेट गड़बड़ाने के लिए क्षमा करें। क्या उन गैर-प्रदर्शित पात्रों से बचने का कोई तरीका है और इसके बजाय कुछ प्रदर्शन योग्य उद्धरण हैं?
user3658425

@ user3658425 कृपया मेरा संपादन देखें
phuclv

1
मैंने उपरोक्त ANSI / ASCII जानकारी को भी संपादित किया है
phuclv

3
ध्यान दें कि, सामान्य रूप से "यूटीएफ -8 विदआउट बाइट ऑर्डर मार्क" वही है जो आप चाहते हैं। जैसा कि अतीत में कई अन्य लोगों ने कहा है, "यूटीएफ -8 एकमात्र उपयोगी स्ट्रिंग एन्कोडिंग है।"
6

4
@WillihamTotland utf8everywhere.org
phuclv
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.