विंडोज 7 में UTF8 को डिफॉल्ट कैरेक्टर एनकोडिंग के रूप में सेट करना


63

क्या मानक के रूप में UTF-8 को विश्व स्तर पर उपयोग करने के लिए विंडोज 7 को सेट करने का एक तरीका है?
इसका उपयोग करने के लिए हर एक पाठ संपादक को सेट करना वास्तव में कष्टप्रद है।


4
तो आप ओएस को कुछ बताना चाहते हैं .. और फिर जादुई रूप से सभी संपादक इसे उठाते हैं? :) आप कितने संपादकों का उपयोग करते हैं? हर 3 मिनट में एक और? वैसे भी: Superuser.com/questions/221593/windows-7-utf-8-and-unicode मुझे जो पता है उससे: Windows हर जगह आंतरिक रूप से UTF16 का उपयोग करता है, और मुझे संदेह है कि आप इसे बदल सकते हैं।
अकीरा

1
संपादक मैं उपयोग करते हैं: नोटपैड, नोटपैड ++, क्यूटी, एक्लिप्स, थंडरबर्ड, ओपन ऑफिस, और कुछ अन्य ... मैं केवल सादे पाठ संपादकों के बारे में बात नहीं कर रहा हूं, लेकिन सब कुछ जो पाठ के साथ और आउटपुट में काम करता है। अधिकांश प्लेटफ़ॉर्म स्वतंत्र टेक्स्ट एडिटर लिनक्स में मानक के रूप में utf-8 का उपयोग करते हैं लेकिन विंडोज में लैटिन -1 का उपयोग करते हैं।
बार्न

विंडोज 7 पर नहीं, लेकिन यह विंडोज 10 पर संभव है
phuclv

जवाबों:


45

संक्षिप्त उत्तर नहीं है, यह संभव नहीं है

विस्तृत करने के लिए, मुझे डर है कि आप विंडोज 7 में एक वैश्विक एन्कोडिंग विकल्प नहीं पाएंगे जो आपको 1 दोनों देता है) एक वैश्विक डिफ़ॉल्ट सेट करें जो 2) आपके द्वारा सूचीबद्ध सभी एप्लिकेशन का पालन करेंगे।

इसके अलावा, मैं पूछना चाहता हूं कि यहां क्या समस्या है जिसे आप हल करने की कोशिश कर रहे हैं?

यह एप्लिकेशन पर निर्भर है कि वे डेटा का प्रतिनिधित्व करने के लिए यूनिकोड का आंतरिक रूप से उपयोग करते हैं या नहीं। हालांकि यूनिकोड के उपयोग को प्रोत्साहित किया जाता है , आप कभी भी सुनिश्चित नहीं हो सकते हैं कि वास्तव में आपके सभी एप्लिकेशन आंतरिक रूप से इसका समर्थन करते हैं।

हालांकि आप क्या कर सकते हैं , हालांकि प्रत्येक सूचीबद्ध अनुप्रयोगों के लिए डिफ़ॉल्ट वर्ण एन्कोडिंग को बदल सकते हैं :

  • ग्रहण के लिए, नई फ़ाइलों के लिए डिफ़ॉल्ट एन्कोडिंग को Windows> प्राथमिकताएँ> सामान्य> सामग्री प्रकारों से सेट किया जा सकता है ( ग्रहण एक सूत्र पर पोस्ट देखें )
  • नोटपैड ++ के लिए, सेटिंग्स> वरीयताएँ> नए दस्तावेज़ / डिफ़ॉल्ट / निर्देशिका पर जाएं और UTF-8 को एन्कोडिंग सेट करें
  • थंडरबर्ड के लिए, मुझे पूरा यकीन है कि यह पहले से ही डिफ़ॉल्ट एन्कोडिंग के रूप में UTF-8 का उपयोग करता है? ( वर्ण एन्कोडिंग के बारे में ये नोट देखें )
  • OpenOffice (और LibreOffice) के मामले में, आपको वास्तव में एन्कोडिंग के बारे में परवाह करने की आवश्यकता नहीं है, क्योंकि OpenOffice द्वारा सहेजे गए दस्तावेज़ XML पर आधारित हैं, जिसमें XML-files (और UTF-8 में आंतरिक रूप से एन्कोडिंग निर्दिष्ट है) डिफ़ॉल्ट रूप में अच्छी तरह से)
  • UTF-8 के दृष्टिकोण से, PowerShell मुश्किल है। इसकी डिफ़ॉल्ट एन्कोडिंग है UTF-16LE
    • PowerShell से UTF-8 में फ़ाइलों को आउटपुट करने के लिए, यह उत्तर देखें
    • डिफ़ॉल्ट एन्कोडिंग को बदलने के लिए यह उत्तर देखें

4
जवाब नहीं मैं पाने की उम्मीद कर रहा था, लेकिन मुझे लगता है कि मुझे सच्चाई के साथ जीना है, धन्यवाद =)
बरन

नोटपैड विंडोज़ के लिए?
ममौनी

23

यह मुख्य रूप से संभव नहीं है क्योंकि विंडोज UTF-8 को सिस्टम ANSI कोडपेज के रूप में अनुमति नहीं देता है, जबकि इसके पास UTF-8, कोडपेज 65001 के लिए ANSI कोडपेज है । इसके कई कारण हो सकते हैं:

  • जब यूनिकोड नया था तो माइक्रोसॉफ्ट ने निर्णय लिया कि यूसीएस -2 यूनिकोड का समर्थन करने का सबसे अच्छा तरीका होगा। उस समय यूनिकोड 16-बिट था।
  • विंडोज में यूनिक्स और लिनक्स के विपरीत प्रत्येक समर्थित भाषा के लिए एक एएनएसआई कोडपेज है , जहां भाषा और एन्कोडिंग को स्वतंत्र रूप से सेट किया जा सकता है।
  • कोड पृष्ठ 65001 हर जगह काम नहीं करता है। विशेष रूप से यह विंडोज में कुछ मल्टीबाइट समर्थन के साथ टूट गया है जो मल्टीबाइट पात्रों को एक या दो बाइट्स की आवश्यकता की उम्मीद करते हैं जबकि यूटीएफ -8 को एक और चार बाइट्स के बीच की आवश्यकता होती है। WriteFile()एपीआई उदाहरण के लिए कोड पृष्ठ पर 65001 जिस पर यह इस तरह के रूप भरोसा सभी पुस्तकालय कोड के माध्यम से ऊपर बुलबुले के तहत एक गलत परिणाम देता है write()

माइक्रोसॉफ्ट में अंतर्राष्ट्रीयकरण पर काम करने वाले स्वर्गीय माइकल कपलान का एक ब्लॉग था, " संबंधित विषयों पर कई पोस्ट के साथ " इसे सभी को छाँटकर " । मैंने दिन में वापस इनमें से कुछ चिंताओं के बारे में उन्हें सीधे ईमेल किया।


ध्यान दें कि जब विंडोज (NT) की कल्पना की गई थी, तब कोई भी UTF-8 नहीं था। यूसीएस -2 वास्तव में वास्तव में एक समझदार विकल्प था (और बाद में इसे बदलना असंभव था, यूटीएफ -16 को छोड़कर)।
जॉय

2
इसका कारण यह है कि UTF-8 लोकेल कुछ कार्यों को तोड़ सकता है (एक संभावित उदाहरण _mbsrev है) क्योंकि उन्हें यह मानकर लिखा गया था कि मल्टीबाइट एन्कोडिंग्स में प्रति वर्ण 2 बाइट्स से अधिक का उपयोग नहीं किया जाता है, इस प्रकार अब तक अधिक बाइट जैसे GB 18030 (cp54936) वाले कोड पृष्ठ ) और UTF-8 को लोकेल के रूप में सेट नहीं किया जा सकता है। । लेकिन अब कम से कम अब विंडोज 10 पर यूटीएफ -8 लोकेल को सेट करना संभव है
फुल्विक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.