मेरे पास जापानी वर्णों के साथ कुछ निर्देशिका/फ़ाइलें हैं। अगर मैं एक फ़ाइल नाम (सामग्री नहीं) को पढ़ने की कोशिश करता हूं (उदाहरण के लिए) ク मुझे एक स्ट्रिंग प्राप्त होता है जिसमें होता है। यदि मैं एक फ़ाइल/निर्देशिका बनाने की कोशिश करता हूं जिसमें एक फ़ाइल/निर्देशिका है जिसमें एक है?जावा पढ़ना यूनिकोड/यूटीएफ -8 फाइलनाम (सामग्री नहीं)
उदाहरण के तौर पर: मैं फ़ाइलों को सूचीबद्ध करता हूं।
File file = new File(".");
String[] filesAndDirs = file.list();
फ़ाइलें औरडिर्स सरणी में अब निर्देशिकाएं विशेष वर्ण हैं। स्ट्रिंग में अब केवल है। यह लगता है कि डीकोड करने के लिए कुछ भी नहीं है क्योंकि गेटबाइट अलग-अलग वर्णों के लिए फ़ाइल नाम में प्रत्येक char के लिए केवल "-17 -65 -67" दिखाता है।
मै मैकोज़ 10.8.2 जावा 7_10 और नेटबीन्स का उपयोग करता हूं।
कोई विचार?
अग्रिम धन्यवाद :)
यह स्पष्ट नहीं है कि आप * उन फाइलनामों को कैसे दिखा रहे हैं या फिर आप 'String.getBytes()' (जिसे आपको हमेशा चाहिए) के लिए एन्कोडिंग प्रदान कर रहे हैं। यह देखने के लिए कि वास्तव में क्या चल रहा है, आपको फ़ाइल नाम में प्रत्येक वर्ण के लिए यूटीएफ -16 कोड बिंदु को डंप करना चाहिए। साथ ही, फ़ाइल को बनाने का प्रयास करते समय यह स्पष्ट नहीं है कि आप इनपुट डेटा कैसे प्राप्त कर रहे थे। –
'GetBytes' जो वैध लगता है वह यूटीएफ 8 –
@ जैन हां यह मान्य यूटी 8 जैसा लगता है लेकिन GetBytes प्रत्येक char के लिए "-17 -65 -67" देता है। लेकिन फ़ाइल/निर्देशिका नाम में सभी वर्ण समान नहीं हैं। ऐसा लगता है जैसे मैं ओएस और जावावीएम के बीच सभी जानकारी खो देता हूं। "-17 -65 -67" प्रत्येक विशेष चार के लिए दोहराया जाता है। [ए-जेए-जेड ...] अपेक्षित के रूप में लौटाए जाते हैं। मैं कम से कम प्रत्येक चार के लिए अलग बाइट्स की उम्मीद करता हूं। –