상세 컨텐츠

본문 제목

[C++11] char32_t & char16_t

C++/Modern C++(11, 14, 17, 20)

by deulee 2023. 8. 23. 18:00

본문

`char32_t`와 `char16_t`는 C++11에서 도입된 두 가지 새로운 문자 타입이다.

 

이들은 '유니코드 문자'를 처리하고 표현하는 데 사용되는 타입으로, 기존의 `char` 타입과는 다른 길이와 표현 방식을 가지고 있다.

 

선언 방법은 다음과 같다.

 

#include <iostream>

int main(void)
{
	char32_t utf8_str[] = U"\u0123";
	char16_t utf8_str[] = U"\u0123";
	return 0;
}

 

  1. char32_t:
    • `char32_t`는 32비트(4바이트) 크기를 가지며, UTF-32까지 인코딩을 사용하여 유니코드 문자를 나타낸다.
    • `char32_t`를 사용하면 문자당 4바이트의 공간이 필요하다.
  2. char16_t:
    • `char16_t`는 16비트(2바이트) 크기를 가지며, UTF-16 인코딩을 사용하여 유니코드 문자를 나타낸다.
    • `char16_t`를 사용하면 일반적인 문자는 2바이트로 처리되지만, 일부 문자는 4바이트가 필요할 수 있다.

보통은 UTF-8을 사용하기 때문에 위의 두 개는 참고만 하자.

관련글 더보기