이 기사에서는 바이트 배열을 문자열로 변환하는 방법을 배웁니다. 이를 달성할 수 있는 방법은 여러 가지가 있습니다. 이러한 방법 중 일반적인 방법 중 하나는 System 네임스페이스 내에 있는 BitConverter 클래스를 사용하는 것입니다. 이번 주제에서는 Byte to String C#에 대해 알아보겠습니다.
오버로드된 모든 형식이 포함된 BitConverter.ToString() 메서드를 사용하면 byte[]를 문자열로 쉽게 변환할 수 있습니다. 이 방법은 기본적으로 byte[]의 요소에 불과한 숫자 값을 해당하는 16진수 형식의 문자열로 변환합니다. 오버로드된 형식은 다음과 같습니다.
다음은 BitConverter.ToString() 메서드를 사용하여 byte[]를 문자열로 변환하는 구문입니다.
public static string ToString(byte[] byteArray);
위 메서드는 바이트 배열을 입력으로 사용하고 일부 16진수 쌍이 포함된 문자열을 반환합니다. 각 쌍은 하이픈으로 구분되며 byteArray의 해당 요소를 나타냅니다.
public static string ToString(byte[] byteArray, int startingIndex);
여기서 ToString() 메서드는 두 개의 인수를 사용합니다. byteArray는 문자열로 변환할 바이트 배열이고, StartingIndex는 변환을 시작하려는 바이트 배열의 요소 인덱스입니다.
public static string ToString(byte[] byteArray, int startingIndex, int length);
여기서 ToString() 메서드는 세 가지 인수를 사용합니다. byteArray는 문자열로 변환할 바이트 배열이고, StartingIndex는 변환을 수행하려는 바이트 배열 요소의 인덱스이며, 길이는 StartingIndex부터 시작하여 변환하려는 바이트 배열 요소의 수입니다.
앞서 설명한 것처럼 C#에서는 바이트 배열을 문자열로 변환하는 방법이 많이 있습니다. 일반적인 방법 중 하나는 BitConverter.ToString() 메서드를 사용하는 것입니다. C#의 System 네임스페이스 아래 BitConverter 클래스에는 바이트 배열을 기본 데이터 형식으로 변환하는 여러 메서드가 포함되어 있으므로 이 클래스의 ToString() 메서드를 사용하여 byte[]를 문자열로 변환할 수 있습니다. 이 메서드에는 다음과 같은 세 가지 오버로드 형식이 있습니다.
ToString(byte[]);
이 방법은 전체 바이트 배열의 각 요소의 숫자 값을 문자열로 변환하는 데 사용됩니다. 여기서 결과 문자열은 각각 하이픈으로 구분된 16진수 쌍을 포함하며 각 쌍은 해당 바이트 배열 요소를 나타냅니다.
ToString(byte[], Int32);
이 방법은 바이트 하위 배열의 각 요소의 숫자 값을 해당하는 16진수 문자열 쌍으로 변환합니다. 이 메소드의 정수 인수는 하위 배열의 시작 인덱스를 지정합니다.
ToString(byte[], Int32, Int32);
이 메서드는 바이트 배열의 일부 또는 모든 요소에 대한 숫자 값을 16진수 문자열 쌍으로 변환합니다. 변환할 요소는 이 메서드의 두 번째 및 세 번째 인수를 사용하여 지정됩니다. 두 번째 인수는 변환을 시작해야 하는 시작 인덱스를 지정하고, 세 번째 인수는 가져올 요소의 길이, 즉 앞서 지정한 시작 인덱스부터 시작하여 변환을 위해 가져올 요소 수를 지정합니다.
이 외에도 시스템 내부에 있는 Encoding 클래스를 사용할 수 있습니다. UTF-8 또는 ASCII 문자 집합 및 인코딩을 사용하여 바이트 배열을 문자열로 변환하는 텍스트 네임스페이스입니다. 이 클래스에서 제공하는 GetString() 메서드는 바이트 배열에 있는 바이트를 문자열로 디코딩하는 데 사용됩니다.
Encoding 클래스에서 제공하는 다른 인코딩 구성표에는 Unicode, UTF32, UTF7 등이 있습니다.
이 변환을 수행하는 또 다른 방법은 Convert.ToBase64String() 메서드를 사용하여 바이트 배열 내부에 있는 바이트를 문자열로 변환하는 것입니다.
ToBase64String(byte[]); We can also use MemoryStream to convert byte array to string. But, first, we need to convert the byte array to the stream of bytes using MemoryStream class; then, we can read this entire stream using StreamReader class and then can return this stream as a string with the help of the ReadToEnd() method. Let us now understand this with the help of statements provided below:
using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (StreamReader streamReader = new StreamReader(memoryStream)) { return streamReader.ReadToEnd(); } }
위 문장에서 '바이트'는 문자열로 변환할 바이트 배열입니다. 그래서 먼저 'memoryStream' 객체의 바이트 스트림으로 바이트 배열을 얻었습니다. 그런 다음 StreamReader 클래스를 사용하여 이 스트림을 읽고 스트림을 읽고 문자열 값을 반환하는 ReadToEnd() 메서드를 사용하여 스트림을 문자열로 반환합니다.
아래에는 다양한 예가 나와 있습니다.
BitConverter 클래스를 사용하여 바이트 배열을 문자열로 변환하는 예
코드:
using System; using System.Globalization; using System.Text; using System.IO; public class Program { public static void Main() { string resultedStr = string.Empty; //defining byte array byte[] bytes = new byte[5] { 12, 24, 36, 48, 60 }; //printing byte array before conversion Console.Write("Byte array before conversion: "); for (int i = 0; i < bytes.Length; i++) { Console.Write(" " + bytes[i]); } //converting byte array to string resultedStr = BitConverter.ToString(bytes); //printing string after conversion Console.WriteLine("\nResulted string after conversion: {0}", resultedStr); Console.ReadLine(); } }
출력:
Encoding 클래스와 MemoryStream 클래스를 사용하여 바이트 배열을 문자열로 변환하는 예
코드:
using System; using System.Globalization; using System.Text; using System.IO; namespace ConsoleApp4 { public class Program { public static void Main() { string str = "The sun rises in the east"; //converting string to array of bytes byte[] bytes = Encoding.ASCII.GetBytes(str); //printing byte array before conversion Console.Write("Byte array before conversion: "); for (int i = 0; i < bytes.Length; i++) { Console.Write(" " + bytes[i]); } //converting byte array to string using Encoding class str = Encoding.ASCII.GetString(bytes); //printing resulted string after conversion Console.WriteLine("\n"); Console.Write("\nConversion using Encoding class: \n{0}", str); //converting byte array to string using MemoryStream class Console.WriteLine("\n"); Console.WriteLine("\nConversion using MemoryStream: "); using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (StreamReader streamReader = new StreamReader(memoryStream)) { Console.Write(streamReader.ReadToEnd()); } } Console.ReadLine(); } } }
출력:
C#에서는 BitConverter, Encoding, MemoryStream 등과 같은 클래스를 사용하여 바이트 배열을 문자열로 변환할 수 있습니다. BitConverter 클래스에서 제공하는 결과 문자열에는 16진수 쌍이 포함됩니다. Encoding 클래스를 사용하면 동일한 인코딩 체계를 사용하여 문자열을 byte[]로, byte[]를 문자열로 변환할 수 있습니다.
위 내용은 바이트를 문자열로 C#의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!