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

C# 콘솔의 입력 인코딩 체계를 변경하는 방법

C# 프로그래밍에서 콘솔(Console)의 입력 인코딩 체계를 변경해야 하는 경우가 있습니다. 이때는 Console.InputEncoding 속성을 사용하면 됩니다. 이 속성에 원하는 인코딩(예: Encoding.ASCII)을 할당하면, 콘솔이 키보드 입력을 읽어들이는 방식이 해당 인코딩 체계로 변경됩니다.

예제 코드

다음 예제는 콘솔의 배경색과 전경색을 변경한 후, 입력 인코딩을 ASCII로 설정하고 그 값을 출력하는 전체 과정을 보여줍니다.

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Linq;
using System.Text;

class Demo {
   public static void Main(string[] args) {
      Console.BackgroundColor = ConsoleColor.Blue;
      Console.WriteLine("Background color changed = " + Console.BackgroundColor);

      Console.ForegroundColor = ConsoleColor.Yellow;
      Console.WriteLine("\nForeground color changed = " + Console.ForegroundColor);

      Console.InputEncoding = Encoding.ASCII;
      Console.WriteLine("Input Encoding Scheme = " + Console.InputEncoding);

      Console.CursorTop = 20;
      Console.WriteLine("\nCursorTop = " + Console.CursorTop);
   }
}

코드 설명

  • Console.BackgroundColor : 콘솔의 배경색을 파란색(Blue)으로 설정합니다.
  • Console.ForegroundColor : 콘솔의 글자색(전경색)을 노란색(Yellow)으로 설정합니다.
  • Console.InputEncoding = Encoding.ASCII; : 콘솔의 입력 인코딩 체계를 ASCII로 변경하는 핵심 코드입니다.
  • Console.CursorTop : 커서의 세로 위치(행 번호)를 20으로 지정합니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 순서대로 출력됩니다.

  • 배경색이 파란색으로 변경되었다는 메시지와 함께 현재 배경색 값이 표시됩니다.
  • 전경색이 노란색으로 변경되었다는 메시지와 함께 현재 전경색 값이 표시됩니다.
  • 입력 인코딩 체계가 System.Text.ASCIIEncoding(ASCII)으로 설정된 값이 출력됩니다.
  • 커서 위치(CursorTop)가 20으로 설정된 값이 출력됩니다.

C# 콘솔의 입력 인코딩 체계를 변경하는 방법

참고 사항

입력 인코딩은 한글과 같은 유니코드 문자를 처리할 때 특히 중요합니다. Windows 콘솔은 기본적으로 시스템 코드 페이지를 사용하지만, Console.InputEncoding = Encoding.UTF8;처럼 UTF-8로 설정하면 다국어 입력도 안정적으로 처리할 수 있습니다. 또한 인코딩 변경은 콘솔 창이 실제로 열려 있는 상태에서만 적용되므로, GUI 애플리케이션에서는 주의해서 사용해야 합니다.