2010-11-09 17 views
7

मैं विजुअल स्टूडियो 2008 में एन्कोडिंग संकलन जबकि मैं ऐसी त्रुटियों हो रही फाइलों के साथ समस्या है विंडो प्रकट होता है:दृश्य स्टूडियो एन्कोडिंग समस्याओं

alt text

करके स्वत: पता लगाना-डिफ़ॉल्ट रूप स्थापित किया जाएगा। जब मैं यूटीएफ -8 में एन्कोडिंग विकल्प बदलता हूं, तो सब कुछ काम करता है। यदि मैं यूटीएफ -8 एन्कोडिंग का उपयोग करके अपनी परियोजना में प्रत्येक समस्याग्रस्त फ़ाइल खोलता हूं, तो प्रोजेक्ट संकलित करना शुरू होता है। समस्या यह है कि मेरे पास बहुत सारी फ़ाइलें हैं और प्रत्येक फ़ाइल को खोलने और यूटीएफ -8 में एन्कोडिंग सेट करने के लिए हास्यास्पद है। क्या इसे जल्दी से बनाने का कोई तरीका है?

मेरे वी.एस. सेटिंग्स हैं:

alt text

मैं Windows Server 2008 R2 उपयोग कर रहा हूँ।

अद्यतन:

हंस Passant और नूह रिचर्ड्स के लिए। बातचीत के लिए धन्यवाद। मैंने हाल ही में अपना ऑपरेटिंग सिस्टम बदल दिया है, इसलिए सबकुछ ताजा है। मैंने स्रोत नियंत्रण से ताजा समाधान भी डाउनलोड किया है।

ओएस क्षेत्रीय सेटिंग्स में मैं पोलिश (पोलैंड) के लिए सिस्टम स्थान बदल दिया है:

alt text

वी.एस. में मैं एक ही करने के लिए अंतरराष्ट्रीय सेटिंग बदलते हैं, खिड़कियों के रूप में:

alt text

समस्या अभी भी हल नहीं है।

alt text

: -

जब मैं कुछ .cs एन्कोडिंग के लिए ऑटो का पता लगाने का उपयोग करके फ़ाइलें खोलें, और फिर जाँच फ़ाइलें> उन्नत सहेजें विकल्प ..., इस में से कुछ फ़ाइलों .cs कोड पृष्ठ पर 1250 है

लेकिन आंतरिक रूप से निम्नलिखित दिखता है:

alt text

यह, वायर्ड है, क्योंकि जब मैं स्रोत चोर में इस तरह के विशेष फ़ाइलों के गुण की जाँच

alt text

मैं इस बेमेल समझ में नहीं आता: trol, वे UTF-8 एन्कोडिंग सेट है लगता है।

अन्य सभी फ़ाइलें UTF-8 एन्कोडिंग है:

alt text

और सही ढंग से खुलता है। मुझे मूल रूप से कोई जानकारी नहीं है कि क्या गलत हो रहा है क्योंकि जहां तक ​​मुझे पता है कि मेरे दोस्त के पास मेरे जैसे ही विकल्प हैं, और वही प्रोजेक्ट उसके लिए सही तरीके से संकलित करता है। लेकिन अब तक वह खुशी से एन्कोडिंग मुद्दों का सामना नहीं किया है।

+0

आपके पास 'बहुत अधिक फ़ाइलें नहीं हो सकती हैं' और इससे पहले यह समस्या नहीं थी। किया बदल गया? क्या आपने हाल ही में इस मशीन पर स्विच किया था? क्या सिस्टम कोड पेज बदल गया है? क्या यह परियोजना वीएस2005 से आयात की गई थी? एक गंदे एससीसीएस में बदलें? अपनी समस्या को बेहतर तरीके से दस्तावेज करें। –

उत्तर

2

उस अपरकेस ए के साथ circumflex मुझे बताता है कि फ़ाइल यूटीएफ -8 है (यदि आप एक हेक्स संपादक के साथ देखते हैं तो आप शायद देखेंगे कि बाइट्स सी 2 ए 0 हैं)। यह यूटीएफ -8 में एक गैर-ब्रेकिंग स्पेस है।

विजुअल स्टूडियो एन्कोडिंग का पता नहीं लगाता है क्योंकि (सबसे अधिक संभावना है) फ़ाइल में पर्याप्त उच्च-ASCII वर्ण विश्वसनीय पहचान के साथ मदद करने के लिए नहीं हैं।

इसके अलावा, कोई बीओएम (बाइट ऑर्डर मार्क) नहीं है। इससे पता लगाने में मदद मिलेगी (यह "हस्ताक्षर के साथ यूटीएफ -8" में "हस्ताक्षर" है)।

आप क्या कर सकते हैं: उन सभी फ़ाइलों में बीओएम जोड़ें जिनमें एक नहीं है। कैसे जोड़ें? केवल एक बोम के साथ फ़ाइल बनाएं (नोटपैड में खाली फ़ाइल, के रूप में सहेजें, यूटीएफ -8 को एन्कोडिंग के रूप में चुनें)। यह 3 बाइट लंबा होगा (ईएफ बीबी बीएफ)। आप कॉपी कर सकते हैं कि प्रत्येक फ़ाइल की शुरुआत है कि बीओएम याद आ रही है पर:

copy /b/v BOM.txt + YourFile.cs YourFile_Ok.cs 
    ren YourFile.cs YourFile_Org.cs 
    ren YourFile_Ok.cs YourFile.cs 

यकीन है कि वहाँ है बीओएम फ़ाइल का नाम और मूल फ़ाइल में से एक के बीच एक + बनाओ।

इसे एक या दो फाइलों पर आज़माएं, और यदि यह काम करता है तो आप ऐसा करने के लिए कुछ बैच फ़ाइल बना सकते हैं। या एक छोटा सी # एप्लिकेशन (चूंकि आप एक सी # प्रोग्रामर हैं), यह पता लगा सकता है कि फ़ाइल में पहले से ही बीओएम है या नहीं, ताकि आप इसे दो बार नहीं जोड़ सकें। बेशक, आप इसे लगभग कुछ भी कर सकते हैं, पर्ल से पावरशेल से सी ++ :-)

+0

उस के लिए धन्यवाद, अच्छा समाधान। फिर भी ऐसा लगता है कि मेरे दोस्त को इस तरह का मुद्दा नहीं मिला है क्योंकि हमारे पास एक ही ओएस, एक ही स्रोत फाइलें हैं (उसी स्कैन से) और मुझे वही सेटिंग्स लगता है। फिर भी यह चाल मेरी मदद करती है और भविष्य के लिए एक अच्छी युक्ति है। सादर। – jwaliszko

0

एक बार जब आप यूटीएफ -8 मोड में फाइलें खोल लेते हैं, तो क्या आप फ़ाइल के लिए उन्नत सहेजें विकल्प बदलने और इसे सहेजने का प्रयास कर सकते हैं (हस्ताक्षर के साथ यूटीएफ -8 के रूप में, अगर आपको लगता है कि ये फ़ाइलें यूटीएफ -8 होनी चाहिए) ?

ऑटो-डिटेक्ट एन्कोडिंग का पता लगाने का सबसे अच्छा प्रयास है, इसलिए संभवतः फ़ाइल में कुछ इसे यूटीएफ -8 के अलावा किसी अन्य चीज़ के रूप में पहचाना जा रहा है, जैसे फ़ाइल के पहले किलोबाइट में केवल ASCII वर्ण , या एक बीओएम होने से जो फ़ाइल को इंगित करता है वह यूटीएफ -8 के अलावा कुछ और है। हस्ताक्षर के साथ फ़ाइल को यूटीएफ -8 के रूप में पुन: सहेजना चाहिए (उम्मीद है) इसे सही करना चाहिए।

यदि यह उसके बाद हो रहा है, तो मुझे बताएं, और हम उन्हें ट्रैक करने/उन्हें सहेजने के कारण पहले स्थान पर ट्रैक करने का प्रयास कर सकते हैं।

संबंधित मुद्दे