यूटीएफ 8 वास्तविक डिफ़ॉल्ट है और इसका उपयोग तब किया जाता है जब स्वत: पहचान को कोई एन्कोडिंग नहीं मिलती है। तो बीओएम अधिक महत्वपूर्ण है। विवरण नीचे देखें:
ReadAllText(string path)
- MSDN:
ReadAllText(string path, Encoding encoding)
"यह पद्धति स्वचालित रूप से एन्कोडिंग का पता लगाने के लिए प्रयास करता" - MSDN:
परावर्तक उपकरण से "यह पद्धति स्वचालित रूप से एन्कोडिंग पता लगाने का प्रयास": ReadAllText(path)
है ReadAllText(path, Encoding.UTF8)
के समान, क्योंकि ReadAllText(path)
बस ReadAllText(path, Encoding.UTF8)
पर कॉल करता है। दोनों ही तरीकों से इस तरह से StreamReader बनाता है:
public StreamReader(string path, Encoding encoding) : this(path, encoding, true, 0x400)
{
}
इसका मतलब यह है कि यह सही पर सेट किया detectEncodingFromByteOrderMarks साथ StreamReader(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize)
पैदा करता है। इसका मतलब है कि अगर बाइट ऑर्डर मार्क (बीओएम) मौजूद है तो यह बीओएम से एन्कोडिंग का उपयोग करेगा, अगर बीओएम मौजूद नहीं है तो यह उपलब्ध एन्कोडिंग का उपयोग करेगा। यदि बीओएम मौजूद नहीं है और एन्कोडिंग प्रदान नहीं की जाती है तो यह यूटीएफ 8 का उपयोग करेगी। तो UTF8 इस मामले में वास्तविक डिफ़ॉल्ट है, लेकिन याद रखें कि बीओएम सुझाए गए एन्कोडिंग से अधिक महत्वपूर्ण है।
// bom.txt is the file with BOM present. nobom.txt - witout BOM
File.ReadAllText("bom.txt"); // use BOM
File.ReadAllText("bom.txt", Encoding.UTF8); // use BOM
File.ReadAllText("bom.txt", Encoding.Default); // use BOM
File.ReadAllText("nobom.txt"); // use UTF-8
File.ReadAllText("nobom.txt", Encoding.UTF8); // use UTF-8
File.ReadAllText("nobom.txt", Encoding.Default); // use system's ANSI codepage
ध्यान दें कि Encoding.Default "डिफ़ॉल्ट" एन्कोडिंग नहीं माना जाना चाहिए - यह सिस्टम डिफ़ॉल्ट * कोडपेज के लिए (! गैर यूनिकोड) एन्कोडिंग * है। –