.Net में, हर स्ट्रिंग का एक कैरेक्टर सेट और एन्कोडिंग होता है। एक कैरेक्टर एन्कोडिंग कंप्यूटर को बताता है कि रॉ जीरो और वन को वास्तविक कैरेक्टर्स में कैसे इंटरप्रेट किया जाए। यह आमतौर पर संख्याओं को कैरेक्टर्स के साथ पेयर करके करता है। वास्तव में, यह यूनिकोड कैरेक्टर्स के एक सेट को बाइट्स के अनुक्रम में बदलने की प्रक्रिया है।
हम निर्दिष्ट बाइट ऐरे में सभी बाइट्स को स्ट्रिंग में डीकोड करने के लिए Encoding.GetString Method (Byte[]) का उपयोग कर सकते हैं। Encoding क्लास में UTF8, Unicode, UTF32, ASCII आदि जैसे कई अन्य डिकोडिंग स्कीम भी उपलब्ध हैं। Encoding क्लास System.Text नेमस्पेस के हिस्से के रूप में उपलब्ध है।
string result = Encoding.Default.GetString(byteArray);
उदाहरण
using System;
using System.Text;
namespace DemoApplication
{
public class Program
{
static void Main(string[] args)
{
byte[] byteArray = Encoding.Default.GetBytes("Hello World");
Console.WriteLine($"Byte Array is: {string.Join(" ", byteArray)}");
string str = Encoding.Default.GetString(byteArray);
Console.WriteLine($"String is: {str}");
Console.ReadLine();
}
}
}
आउटपुट
Byte Array is: 72 101 108 108 111 32 87 111 114 108 100
String is: Hello World
यह ध्यान रखना महत्वपूर्ण है कि हमें दोनों दिशाओं के लिए समान एन्कोडिंग का उपयोग करना चाहिए। उदाहरण के लिए, यदि बाइट ऐरे ASCII के साथ एन्कोडेड है और हम UTF32 का उपयोग करके स्ट्रिंग प्राप्त करने का प्रयास कर रहे हैं, तो हमें वांछित स्ट्रिंग नहीं मिलेगी।
उदाहरण - गलत एन्कोडिंग
using System;
using System.Text;
namespace DemoApplication
{
public class Program
{
static void Main(string[] args)
{
byte[] byteArray = Encoding.ASCII.GetBytes("Hello World");
Console.WriteLine($"Byte Array is: {string.Join(" ", byteArray)}");
string str = Encoding.UTF32.GetString(byteArray);
Console.WriteLine($"String is: {str}");
Console.ReadLine();
}
}
}
आउटपुट
Byte Array is: 72 101 108 108 111 32 87 111 114 108 100
String is: ???