C#의 Uri.HexEscape() 메서드는 지정된 단일 문자를 그에 해당하는 16진수 이스케이프 표현으로 변환하는 정적(static) 메서드입니다. 반환되는 결과는 백분율 기호(%) 뒤에 두 자리 16진수가 붙는 형태로, URI 내에서 특수 문자를 안전하게 인코딩해야 할 때 유용하게 활용됩니다.
구문
메서드의 기본 구문은 다음과 같습니다.
public static string HexEscape (char ch);
여기서 매개변수 ch는 16진수 표현으로 변환하려는 문자입니다. 메서드는 항상 '%' + 16진수 두 자리(예: %6B) 형식의 문자열을 반환합니다.
주요 특징
- 정적 메서드: Uri 클래스의 인스턴스를 생성하지 않고도 직접 호출할 수 있습니다.
- 반환 형식: 백분율 인코딩(%XX) 형태의 문자열을 반환합니다.
- 예외 처리: 전달된 문자가 유효 범위를 벗어나면
ArgumentOutOfRangeException이 발생할 수 있습니다.
예제 1: 소문자 'k' 변환하기
다음은 Uri.HexEscape() 메서드를 사용하여 문자 'k'를 16진수로 변환하는 예제입니다.
using System;
public class Demo {
public static void Main(){
char ch = 'k';
string res = Uri.HexEscape(ch);
Console.WriteLine("Hexadecimal Equivalent = " + res);
}
}
출력 결과:
Hexadecimal Equivalent = %6B
소문자 'k'의 ASCII 코드는 107이며, 이를 16진수로 나타내면 6B이므로 결과가 '%6B'로 출력됩니다.
예제 2: 대문자 'P' 변환하기
이번에는 대문자 'P'를 변환하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
char ch = 'P';
string res = Uri.HexEscape(ch);
Console.WriteLine("Hexadecimal Equivalent = " + res);
}
}
출력 결과:
Hexadecimal Equivalent = %50
대문자 'P'의 ASCII 코드는 80이며, 16진수로는 50이므로 결과가 '%50'으로 출력됩니다.
마무리
Uri.HexEscape() 메서드는 URL 인코딩이 필요한 상황에서 개별 문자를 손쉽게 16진수 이스케이프 시퀀스로 변환할 수 있는 편리한 도구입니다. 다만 실무에서는 여러 문자를 한 번에 처리해야 하는 경우가 많으므로, 문자열 전체를 인코딩할 때는 Uri.EscapeDataString() 같은 메서드를 함께 활용하는 것이 좋습니다.