Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Convert.ToBase64CharArray() 메서드 완벽 가이드 – 구문, 매개변수, 예제까지

C#의 Convert.ToBase64CharArray() 메서드는 8비트 부호 없는 정수(byte) 배열의 일부를 Base-64 숫자로 인코딩된 유니코드 문자 배열의 해당 부분으로 변환할 때 사용합니다. 바이너리 데이터를 문자열 형태로 안전하게 전송하거나 저장해야 할 때 유용하게 활용되는 메서드입니다.

구문(Syntax)

Convert.ToBase64CharArray() 메서드의 기본 구문은 다음과 같습니다.

public static int ToBase64CharArray (byte[] arr, int offsetIn, int length, char[] outArray, int offsetOut);

매개변수 설명

  • arr − 변환할 입력 배열로, 8비트 부호 없는 정수(byte) 배열입니다.
  • offsetIn − 입력 배열(arr)에서 변환을 시작할 위치입니다.
  • length − arr에서 변환할 요소의 개수입니다.
  • outArray − 변환된 결과가 저장될 출력용 유니코드 문자(char) 배열입니다.
  • offsetOut − outArray에서 결과를 저장하기 시작할 위치입니다.

이 메서드는 반환값으로 변환된 출력 배열에 저장된 바이트 수(int)를 돌려줍니다.

예제

이제 Convert.ToBase64CharArray() 메서드를 실제로 구현한 예제를 살펴보겠습니다.

using System;
public class Demo {
   public static void Main(){
      byte[] val1 = {5,10,15,20,25,30};
      long arrLen = (long)((4.0d / 3.0d) * val1.Length);
      if (arrLen % 5 != 0)
         arrLen += 5 - arrLen % 5;
      char[] base64CharArray = new char[arrLen];
      int res = Convert.ToBase64CharArray(val1, 0, val1.Length, base64CharArray, 0);
      Console.WriteLine("Bytes (count) = "+ res);
      Console.Write("Our base64CharArray...\n");
      for (int j = 0; j < base64CharArray.Length; j++)
         Console.Write("{0}", base64CharArray[j]);
   }
}

위 예제에서는 먼저 byte 배열 val1을 선언하고, Base-64 인코딩 시 필요한 출력 배열의 크기를 계산합니다. Base-64는 3바이트를 4문자로 변환하므로, 배열 길이에 4/3을 곱한 뒤 필요한 만큼 크기를 보정하여 base64CharArray를 생성합니다. 이후 ToBase64CharArray()를 호출해 전체 배열(시작 위치 0, 길이는 배열 전체)을 변환하고, 그 결과를 화면에 출력합니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Bytes (count) = 8
Our base64CharArray...
BQoPFBke

출력 결과를 보면 6바이트의 원본 데이터가 Base-64로 인코딩되어 8문자의 문자열 BQoPFBke로 변환된 것을 확인할 수 있습니다. 이처럼 Convert.ToBase64CharArray() 메서드를 활용하면 바이너리 데이터를 손쉽게 Base-64 문자 배열로 변환할 수 있습니다.