2011-01-20 5 views
6

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

तो मुझे अपने डेटाबेस को खिलाने के लिए उन फ़ाइलों को यूटीएफ -8 में परिवर्तित करने की आवश्यकता है। मैं चरित्र मानचित्र का उपयोग करता हूं, लेकिन यह व्यापक रूप से ज्ञात लोगों में से कोई नहीं है। उदाहरण के लिए। "ए" स्थिति 0x0041 (विन -1252 में) पर है, लेकिन 0x0042 पर एक संकेत है जो यूटीएफ -8 में 0x0102 स्थिति पर दिखाई देता है, और इसी तरह। जावा के साथ उन फ़ाइलों को डीकोड और कनवर्ट करने का कोई आसान तरीका है?

मैंने पहले से ही कई पोस्ट पढ़ी हैं, लेकिन वे सभी किसी भी तरह के उद्योग मानक एन्कोडिंग के साथ काम करते हैं, न कि कस्टम वाले के साथ। मुझे उम्मीद है कि पहले here में वर्णित अनुसार java.io.InputStreamReader पर पास करने के लिए कस्टम java.nio.ByteBuffer.CharsetDecoder या java.nio.charset.Charset बनाना संभव है?

कोई भी सुझाव आपका स्वागत है।

उत्तर

9

जटिल होने की कोई आवश्यकता नहीं है। सिर्फ 256 वर्ण

static char[] map = { ... 'A', '\u0102', ... } 
तो

read each byte b in source 
    int index = (0xff) & b; // to make it unsigned 
    char c = map[index]; 
    target.write(c); 
की एक सरणी बनाने
संबंधित मुद्दे