C#의 Char.ConvertFromUtf32(Int32) 메서드는 지정된 유니코드 코드 포인트(code point)를 UTF-16으로 인코딩된 문자열로 변환하는 정적(static) 메서드입니다.
구문
메서드의 기본 구문은 다음과 같습니다.
public static string ConvertFromUtf32(int utf32);
매개변수
utf32: 변환하고자 하는 21비트 유니코드 코드 포인트입니다. 유효한 범위는 U+0000부터 U+10FFFF까지이며, 서러게이트(surrogate) 영역(U+D800 ~ U+DFFF)은 유효하지 않습니다.
반환 값 및 예외
지정된 코드 포인트에 해당하는 문자열을 반환합니다. 만약 유효 범위를 벗어난 값이나 서러게이트 영역의 값이 전달되면 ArgumentOutOfRangeException 예외가 발생합니다.
예제 1
다음은 Char.ConvertFromUtf32(Int32) 메서드를 사용하는 첫 번째 예제입니다.
using System;
public class Demo {
public static void Main(){
int utf = 0x0051;
string str = Char.ConvertFromUtf32(utf);
Console.WriteLine("Value = "+str);
}
}
출력
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Value = Q
위 예제에서는 16진수 코드 포인트 0x0051(십진수 81)을 전달했으며, 이는 대문자 'Q'에 해당합니다.
예제 2
이번에는 다른 코드 포인트를 사용한 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
int utf = 0x0046;
string str = Char.ConvertFromUtf32(utf);
Console.WriteLine("Value = "+str);
}
}
출력
Value = F
코드 포인트 0x0046(십진수 70)은 대문자 'F'에 해당하므로 위와 같은 결과가 출력됩니다.
정리
Char.ConvertFromUtf32(Int32) 메서드는 유니코드 코드 포인트를 실제 문자열로 간편하게 변환할 수 있는 유용한 도구입니다. 특히 기본 다국어 평면(BMP) 밖의 보조 문자처럼 서러게이트 페어가 필요한 문자를 다룰 때도 올바른 UTF-16 인코딩 결과를 반환해 주므로, 국제화(i18n) 작업에서 활용도가 매우 높습니다.