IntelliJ डीबगर द्वारा UTF8 स्ट्रिंग में दिखाया गया -1 और -2 क्या है और इसे कैसे निकालना है? [डुप्लिकेट]

Dec 08 2020

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

यहाँ अपराधी का सबूत है।

यह कुछ हद तक मेरे regex को खराब करता है ^(\w+)क्योंकि ऐसा होता है कि इसमें एक व्हाट्सएप है। जब मैं स्ट्रिंग (स्क्रीनशॉट) के मूल्य को RegExr में उदाहरण के लिए कॉपी करता हूं, तो मैं देखता हूं कि एक व्हाट्सएप जोड़ा गया है - और यही वजह है कि मेरा रेगेक्स काम करेगा।

मैं पहले ही गुगली कर चुका -1 -2 in UTF-8 stringथा , लेकिन कुछ भी नहीं पा रहा था और इसलिए मैं उसको लेकर भ्रमित हूं।

जवाब

2 Blindy Dec 08 2020 at 02:09

आपके डिबगर को क्रमशः -1 और -2 के रूप में दिखाने के लिए मूर्खतापूर्ण किया जा रहा है, लेकिन यह पर्याप्त रूप से स्पष्ट है कि आप UTF-16 BOM के साथ काम कर रहे हैं (न कि UTF-8 जैसा कि आप सवाल में दावा करते हैं, कि एक 3-बाइट है मार्कर जो पूरी तरह से अलग है)।

अपनी उपस्थिति की जांच करने के लिए स्वतंत्र महसूस करें और उन्हें हटा दें यदि आप उन्हें किसी फ़ाइल की शुरुआत में सामना करते हैं, हालांकि आदर्श रूप से आपको अपनी फ़ाइल को पहले बिना बीओएम के बिना सहेजना चाहिए।