filereader - Removing the BOM character with Java -


इस सवाल का पहले से ही एक उत्तर है: < / p>

  • 7 जवाब

    मैं फ़ाइलों को पढ़ने की कोशिश कर रहा हूँ FileReader का उपयोग करके और उन्हें एक अलग फ़ाइल में लिखें।
    ये फ़ाइलें यूटीएफ -8 एन्कोडेड हैं, लेकिन उनमें से कुछ में अभी भी एक बीओएम है।
    मैंने जिस संगत कोड की कोशिश की वह यह है:
    < पूर्व> निजी अंतिम स्ट्रिंग UTF8_BOM = "\ uFEFF"; निजी स्ट्रिंग हटानेUTF8BOM (स्ट्रिंग्स) {if (s.startsWith (UTF8_BOM)) {s = s.replace (UTF8_BOM, ""); } वापसी एस; } लाइन = हटाएटफ 8 बीओएम (लाइन);

    लेकिन किसी कारण से बीओएम को हटाया नहीं जाता है। क्या ऐसा कोई अन्य तरीका है जिसे मैं FileReader के साथ कर सकता हूं? मुझे पता है कि वहाँ BOMInputStream है कि काम करना चाहिए, लेकिन मैं बजाय FileReader का उपयोग कर एक समाधान खोजने के लिए चाहते हैं।

    क्लास फ़्लेमरीडर एक पुरानी उपयोगिता वर्ग है, जो मंच एन्कोडिंग का उपयोग करता है। विंडोज़ पर नहीं UTF-8।

    सर्वश्रेष्ठ किसी अन्य वर्ग के साथ पढ़ने के लिए।

    मनोरंजन के रूप में, और त्रुटि को स्पष्ट करने के लिए, यहां एक गंदे हैक, जो कि एकल बाइट एन्कोडिंग के साथ प्लेटफॉर्म के लिए काम करता है:

      निजी अंतिम स्ट्रिंग UTF8_BOM = नया स्ट्रिंग ("\ uFEFF" .getBytes (StandardCharsets.UTF_8));   

    यह यूटीएफ -8 बाइट हो जाता है और वर्तमान प्लेटफ़ॉर्म एन्कोडिंग में एक स्ट्रिंग बनाता है।

    यह उल्लेख करने की कोई आवश्यकता नहीं है कि FileReader गैर-पोर्टेबल है, केवल स्थानीय फाइलें।

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

php - How can I cram 6+31 numeric characters into 22 alphanumeric characters? -

mysql - where clause in inner join query -