java - जावा स्कैनर क्लास खराब चरित्र "®"




unicode (2)

जब आप स्कैनर बनाते हैं तो एन्कोडिंग का उल्लेख करें।

Scanner file= new Scanner(new File(fileName), "utf-8");

मेरे पास एक स्ट्रिंग में फ़ाइल पढ़ने के लिए स्कैनर क्लास है। इस चरित्र "®" के साथ कोई भी फ़ाइल इसे विफल करने का कारण बनती है। मैं जावा में नया हूं, क्या इस फ़ाइल को पढ़ने का कोई बेहतर तरीका है ताकि चरित्र स्वीकार किया जा सके?

public void readFile(String fileName)
{
    fileText = "";

    try
    {
        Scanner file = new Scanner(new File(fileName));
        while (file.hasNextLine())
        {
            String line = file.nextLine();
            fileText += line +"\r"+"\n";
        }
        file.close();
    }
    catch (Exception e)
    {
         System.out.println(e);

   }
      }

डिफ़ॉल्ट रूप से स्कैनर प्लेटफॉर्म डिफ़ॉल्ट वर्ण एन्कोडिंग का उपयोग करता है, यह फ़ाइल के वर्ण एन्कोडिंग से मेल नहीं खाता है। JavaDoc कहता है:

एक नया स्कैनर बनाता है जो निर्दिष्ट फ़ाइल से स्कैन किए गए मान उत्पन्न करता है। फ़ाइल से बाइट अंतर्निहित प्लेटफॉर्म के डिफ़ॉल्ट वर्णसेट का उपयोग कर वर्णों में परिवर्तित हो जाते हैं।

सबसे पहले यह निर्धारित करें कि आपकी फ़ाइल में कौन सी वर्ण एन्कोडिंग है, यह लिनक्स कमांड लाइन उपयोगिता file -i साथ किया जा सकता है। स्कैनर में सही एन्कोडिंग पास करें। जावा 7 में java.nio.charset.StandardCharsets में पूर्वनिर्धारित स्थिरांक शामिल हैं। कुछ प्रसिद्ध चरित्र सेट के लिए java.nio.charset.StandardCharsets

Scanner file = new Scanner(new File(fileName), StandardCharsets.UTF_8);




unicode