C++/Modern C++(11, 14, 17, 20)
[C++11] char32_t & char16_t
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;
}
- char32_t:
- `char32_t`는 32비트(4바이트) 크기를 가지며, UTF-32까지 인코딩을 사용하여 유니코드 문자를 나타낸다.
- `char32_t`를 사용하면 문자당 4바이트의 공간이 필요하다.
- char16_t:
- `char16_t`는 16비트(2바이트) 크기를 가지며, UTF-16 인코딩을 사용하여 유니코드 문자를 나타낸다.
- `char16_t`를 사용하면 일반적인 문자는 2바이트로 처리되지만, 일부 문자는 4바이트가 필요할 수 있다.
보통은 UTF-8을 사용하기 때문에 위의 두 개는 참고만 하자.