2011-07-07 19 views
6

में उच्चारण किए गए फ़ाइल नामों को पढ़ना मेरे पास एक वीबी 6 एप्लिकेशन है जो फ़ोल्डर की निर्देशिका सूची करता है और फ़ाइल नामों को चुनता है। इनमें से कुछ उच्चारण हैं, उदाहरण के लिए "Guimarães.txt" (एक छोटे से ए टिल्ड के साथ)। वीबी डिर फ़ंक्शन दोनों, और FileSystemObject फ़ंक्शन उच्चारण किए गए चरित्र को पहचानने में असमर्थ हैं, और इसके बजाय फ़ाइल नाम को "Guimar? Es.pdf" के रूप में वापस कर दें, इसलिए मैं बाद में फ़ाइल खोलने में असमर्थ हूं। मैं विंडोज एक्सप्लोररवीबी 6

में फ़ाइल को सही ढंग से देख सकता हूं यह केवल एक लाइव वातावरण में हो रहा है, विंडोज सर्वर 2003 आर 2 चल रहा है। हमारे परीक्षण प्रणालियों पर, हम फ़ाइल को सही ढंग से पढ़ सकते हैं, हालांकि ये मुख्य रूप से विंडोज 2008 और विंडोज 7 हैं। मैंने शुरुआत में सोचा कि यह एफएसओ के संस्करण पर था, लेकिन जैसा कि "डिर" एक ही परिणाम देता है, अब मैं ऐसा नहीं सोचता। साथ ही, जब मैं फ़ाइल का नाम लॉग फ़ाइल में लिखता हूं, तो यह भी गलत है। तो मुझे लगता है कि बहुत शुरुआती चरण में यह चरित्र को संभालने में असमर्थ है, और इसे एक प्रश्न चिह्न के साथ बदल देता है।

मुझे जो समस्या स्थापित करने की आवश्यकता है वह इस मुद्दे का कारण है: क्या यह विंडोज़ के संस्करण, या मेरी क्षेत्रीय सेटिंग्स (जो मैं देखने में असमर्थ हूं, क्योंकि मेरा खाता लॉक हो गया है), और मैं क्या कर सकता हूं समस्या को हल करने के लिए। अभी के लिए, मैंने उपयोगकर्ताओं से इन पात्रों का उपयोग न करने के लिए कहा है, लेकिन यह दीर्घकालिक समाधान नहीं है।

धन्यवाद।

+2

मुझे संदेह होगा कि समस्या वीबी 6 से संबंधित है और यूनिकोड के लिए समर्थन की कमी है। –

+4

रीजनल सेटिंग्स में पुर्तगाली में "गैर-यूनिकोड प्रोग्राम के लिए भाषा" सेट करने का प्रयास करें और देखें कि यह समस्या को हल करता है या नहीं। मुझे विश्वास है कि यह चाहिए। दुर्भाग्यवश, मुझे संदेह है कि पुराने एमएस वीबी रनटाइम यूनिकोड का समर्थन करता है, जैसे कि कोडी कहते हैं। –

+0

अंतर्निहित कारण वास्तव में है कि वीबी 6 100,000 विभिन्न पात्रों को एन्कोड करने के लिए केवल एक बाइट का उपयोग करने का प्रयास करता है। कुछ पत्र खो देंगे। भाषा बदलना सिर्फ बदलता है कि कौन से अक्षर खो जाएंगे। लेकिन एक? वह यू +00 ई 3 है, यानी आईएसओ -885 9 -1/सीपी 1252 में, जो अब तक का सबसे आम है। – MSalters

उत्तर

2

ठीक है, डिस्क नाम को पढ़ने वाला फ़ाइल नाम यूनिकोड का उपयोग करता है। जब आप इसे आज़माकर प्रदर्शित करते हैं, तो उपयोग में फ़ॉन्ट उस ग्लिफ़ का समर्थन नहीं करता है, इसलिए यह "?" दिखाता है, लेकिन डिस्क पर लिखना सही प्रतिनिधित्व लिखता है। जब इसे फ़ाइल फ़ंक्शंस में पास किया जाता है, तो यह "परिवर्तित" एमबीसीएस या अन्य वर्णमाला में होता है जो तब ब्रेक होता है।

आप या तो मूल कोड Win32 API कॉल का उपयोग करने के लिए अपना कोड बदल सकते हैं, या फ़ाइल नाम में उपयोग की जाने वाली भाषा से मेल खाने के लिए "गैर यूनिकोड प्रोग्राम्स के लिए लैंगेज" को बदल सकते हैं।

+0

धन्यवाद। जैसा ऊपर बताया गया है, मेरा मानना ​​है कि यह चीनी होने के कारण डिफ़ॉल्ट है। हालांकि, क्या "गैर यूनिकोड कार्यक्रमों के लिए भाषा" निश्चित रूप से वीबी 6 पर लागू होती है? मैं पूछता हूं क्योंकि इसकी यूनिकोड क्षमता कुछ हद तक अस्पष्ट है। – olippold

+1

वीबी 6 स्वयं यूनिकोड है, लेकिन दुख की बात है कि बाहरी दुनिया के साथ इसकी अधिकांश बातचीत इंटरफेस के माध्यम से होती है जो यूनिकोड से मल्टीबाइट वर्णों में परिवर्तित होती है (जहां वह "गैर यूनिकोड अनुप्रयोग" खेलता है) – Deanna