मैं इस तरह .NET में StreamReader वर्ग का उपयोग कर रहा:किसी फ़ाइल के एन्कोडिंग का अनुमान लगाने के लिए .NET में कोई BOM नहीं है?
using(StreamReader reader = new StreamReader("c:\somefile.html", true) {
string filetext = reader.ReadToEnd();
}
यह ठीक काम करता है जब फाइल एक बीओएम है। मैं बिना किसी बीओएम वाली फाइल के साथ परेशानी में भाग गया .. मूल रूप से मुझे गंदगी मिल गई। जब मैंने एन्कोडिंग निर्दिष्ट किया। यूनिकोड ने ठीक काम किया, उदाहरण के लिए:
using(StreamReader reader = new StreamReader("c:\somefile.html", Encoding.Unicode, false) {
string filetext = reader.ReadToEnd();
}
तो, मुझे फ़ाइल सामग्री को एक स्ट्रिंग में प्राप्त करने की आवश्यकता है। तो लोग आमतौर पर इसे कैसे संभालेंगे? मुझे पता है कि कोई समाधान नहीं है जो 100% समय पर काम करेगा, लेकिन मैं अपनी बाधाओं को बेहतर बनाना चाहता हूं .. वहां स्पष्ट रूप से सॉफ्टवेयर है जो अनुमान लगाने की कोशिश करता है (उदाहरण के लिए, नोटपैड, ब्राउज़र आदि)। क्या .NET ढांचे में कोई तरीका है जो मेरे लिए अनुमान लगाएगा? क्या किसी के पास कुछ कोड है जो वे साझा करना चाहते हैं?
अधिक पृष्ठभूमि: यह question मेरा जितना ही है, लेकिन मैं .NET भूमि में हूं। उस सवाल ने मुझे विभिन्न encoding detection पुस्तकालयों की सूची में ब्लॉग का नेतृत्व किया, लेकिन कोई भी .NET
कोड प्रोजेक्ट लाइब्रेरी बहुत अच्छी लगती है। यह माइक्रोसॉफ्ट "एमएलएंग" एपीआई को लपेटता है, जो शायद सकल है, लेकिन ऐसा लगता है कि यह सबसे अच्छा समाधान है –