Тип char8_t
Тип char8_t - это целочисленный тип, предназначенный для представления одного символа в кодировке UTF-8. Он был добавлен в стандарт C++20. Размер типа char8_t составляет ровно 8 бит (один байт), а его значения могут принимать диапазон от 0 до 255. В отличие от обычного char, тип char8_t имеет беззнаковую природу и не зависит от платформы. Он используется для работы с UTF-8 строками и литералами, например, u8"text". Переменная типа char8_t хранит один код UTF-8, который может быть частью многобайтового символа.
Синтаксис
char8_t name = value;
Пример
Давайте объявим переменную типа char8_t и выведем её числовое значение:
#include <iostream>
using namespace std;
int main()
{
char8_t ch = u8'a';
cout << static_cast<int>(ch) << endl;
return 0;
}
Результат выполнения кода:
97
Пример
Давайте создадим UTF-8 строку с помощью литерала u8"abcde" и выведем каждый символ в виде числа:
#include <iostream>
using namespace std;
int main()
{
const char8_t* str = u8"abcde";
for (int i = 0; str[i] != u8'\0'; i++)
{
cout << static_cast<int>(str[i]) << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
97 98 99 100 101
Пример
Давайте проверим размер типа char8_t с помощью оператора sizeof:
#include <iostream>
using namespace std;
int main()
{
cout << sizeof(char8_t) << endl;
return 0;
}
Результат выполнения кода:
1