Home Full Site
C# 11: u8 접미어 (UTF-8 문자열 리터럴 접미어)

C#/.NET에서는 문자열(string)을 저장할 때, 기본적으로 UTF-16 인코딩 방식을 사용한다. 하지만, 웹 프로토콜이나 주요 라이브러리 등에서는 UTF-8 인코딩을 널리 사용하고 있다. C# 11 부터 이러한 UTF-8 인코딩을 보다 편리하게 지원하기 위해, 문자열 리터럴 뒤에 u8 이라는 접미어를 붙이면, 별도의 인코딩 변환없이 자동으로 UTF-8으로 인식하여 바이트 시퀀스를 리턴한다. u8 접미어가 붙은 경우 리턴타입은 ReadOnlySpan<byte> 이 된다.

예제

// u8 접미어가 사용된 경우 변수 bytes는
// UTF-8으로 인코딩된 바이트 데이타를 갖는다.
ReadOnlySpan<byte> bytes = "Hello 서울"u8;
foreach (byte b in bytes)
{
    Console.WriteLine(b.ToString("X"));
}

// 바이트 배열로 변환하는 경우
byte[] arr = "Hello 서울"u8.ToArray();



© csharpstudy.com