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

C# Uri.IsHexEncoding() 메서드 – 문자열이 16진수로 인코딩되었는지 확인하는 방법

C#의 Uri.IsHexEncoding() 메서드는 문자열 내 특정 위치의 문자가 16진수(hexadecimal)로 인코딩되어 있는지 여부를 판별합니다. URI에서 흔히 볼 수 있는 %XX 형태의 퍼센트 인코딩(Percent Encoding)을 검사할 때 유용하게 활용됩니다.

구문

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

public static bool IsHexEncoding(string pattern, int index);

매개변수

  • pattern: 검사할 대상 문자열입니다.
  • index: pattern 문자열에서 16진수 인코딩 여부를 검사할 위치(인덱스)입니다.

반환 값

지정한 위치부터 시작하는 문자가 유효한 16진수 인코딩(%XX 형식)이라면 true, 그렇지 않으면 false를 반환합니다.

예제 1: 유효한 16진수 인코딩 확인하기

다음은 Uri.IsHexEncoding() 메서드를 사용하여 문자열 "%50"을 검사하는 예제입니다.

using System;

public class Demo {
   public static void Main() {
      string pattern = "%50";
      bool res = Uri.IsHexEncoding(pattern, 0);
      if (res)
         Console.WriteLine("Valid: Hexadecimal Encoded");
      else
         Console.WriteLine("Invalid: Hexadecimal Encoded");
   }
}

출력 결과

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

Valid: Hexadecimal Encoded

문자열 "%50"의 0번째 인덱스부터 % 기호와 두 자리 16진수로 구성된 유효한 인코딩 형식이므로 true가 반환되었습니다.

예제 2: 다른 인덱스 위치에서 검사하기

이번에는 같은 방식으로 문자열 "%60"을 검사하되, 인덱스를 1로 지정해 보겠습니다.

using System;

public class Demo {
   public static void Main() {
      string pattern = "%60";
      bool res = Uri.IsHexEncoding(pattern, 1);
      if (res)
         Console.WriteLine("Valid: Hexadecimal Encoded");
      else
         Console.WriteLine("Invalid: Hexadecimal Encoded");
   }
}

출력 결과

Invalid: Hexadecimal Encoded

인덱스 1 위치부터는 % 기호 없이 "60"만 검사 대상이 되므로, 유효한 16진수 인코딩 형식으로 판단되지 않아 false가 반환됩니다. 이처럼 인덱스 값에 따라 검사 결과가 달라질 수 있다는 점에 유의해야 합니다.

정리

Uri.IsHexEncoding()은 URI 문자열에서 특정 위치가 %XX 형태의 16진수 인코딩에 해당하는지 빠르게 확인할 수 있는 정적(static) 메서드입니다. URL 디코딩 로직을 직접 구현하거나 인코딩된 문자열의 유효성을 검증해야 할 때 활용하면 좋습니다.