>  기사  >  백엔드 개발  >  바이트를 문자열로 C#

바이트를 문자열로 C#

王林
王林원래의
2024-09-03 15:21:41560검색

이 기사에서는 바이트 배열을 문자열로 변환하는 방법을 배웁니다. 이를 달성할 수 있는 방법은 여러 가지가 있습니다. 이러한 방법 중 일반적인 방법 중 하나는 System 네임스페이스 내에 있는 BitConverter 클래스를 사용하는 것입니다. 이번 주제에서는 Byte to String C#에 대해 알아보겠습니다.

오버로드된 모든 형식이 포함된 BitConverter.ToString() 메서드를 사용하면 byte[]를 문자열로 쉽게 변환할 수 있습니다. 이 방법은 기본적으로 byte[]의 요소에 불과한 숫자 값을 해당하는 16진수 형식의 문자열로 변환합니다. 오버로드된 형식은 다음과 같습니다.

  • ToString(Byte[]);
  • ToString(Byte[], Int32);
  • ToString(Byte[], Int32, Int32);

설명이 포함된 구문

다음은 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#에서 바이트를 문자열로 변환하는 방법은 무엇입니까?

앞서 설명한 것처럼 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() 메서드는 바이트 배열에 있는 바이트를 문자열로 디코딩하는 데 사용됩니다.

  • UTF8.GetString(byte[]);
  • ASCII.GetString(byte[]);

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() 메서드를 사용하여 스트림을 문자열로 반환합니다.

바이트를 문자열로 변환하는 C#의 예

아래에는 다양한 예가 나와 있습니다.

예시 #1

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();
}
}

출력:

바이트를 문자열로 C#

예시 #2

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#

결론

C#에서는 BitConverter, Encoding, MemoryStream 등과 같은 클래스를 사용하여 바이트 배열을 문자열로 변환할 수 있습니다. BitConverter 클래스에서 제공하는 결과 문자열에는 16진수 쌍이 포함됩니다. Encoding 클래스를 사용하면 동일한 인코딩 체계를 사용하여 문자열을 byte[]로, byte[]를 문자열로 변환할 수 있습니다.

위 내용은 바이트를 문자열로 C#의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.