C# में UTF-8 बाइट ऐरे को स्ट्रिंग में कैसे बदलें?
सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ और एक समस्या का सामना कर रहा हूँ। मुझे नेटवर्क स्ट्रीम (TCP सॉकेट) से एक बाइट ऐरे मिलता है, जो UTF-8 एन्कोडिंग में टेक्स्ट है। मुझे इस `byte[]` को वापस सामान्य `string` में बदलना है ताकि मैं इसे कंसोल में प्रिंट कर सकूँ या प्रोसेस कर सकूँ।
समस्या यह है कि मुझे समझ नहीं आ रहा कि इसे सही तरीके से कैसे किया जाए। `(string)buffer` के माध्यम से सीधा कन्वर्ज़न काम नहीं करता, कंपाइलर एरर देता है। मैंने `Encoding.Default.GetString(buffer)` का उपयोग करने की कोशिश की, लेकिन आउटपुट में रूसी टेक्स्ट की जगह बकवास मिलता है। यहाँ मेरे पास मौजूद कोड का उदाहरण है:
```csharp
byte[] utf8Bytes = new byte[] { 208, 161, 208, 176, 208, 189, 208, 186, 209, 130 }; // यह UTF-8 में "Санкт" है
string result = Encoding.Default.GetString(utf8Bytes);
Console.WriteLine(result); // आउटपुट: Санкт (गलत)
```
कृपया बताएं कि विशेष रूप से UTF-8 को सही तरीके से कैसे डिकोड करें? और .NET में विभिन्न एन्कोडिंग के बीच क्या अंतर है? मैंने `Encoding.UTF8` के बारे में सुना है, लेकिन इसका उपयोग कैसे करें, यह सुनिश्चित नहीं हूँ।