Как получить номер юникод символа из std::string
У меня есть переменная типа std::string. Мне нужно получить текст в символах в юникода. Как это можно сделать? Всё что нагуглил - это использование codecvt через wstring_convert который помечен как устаревший и у меня с ним код просто не компилируется.
Сам код:
#include <iostream>
#include <string>
#include <locale>
void print(const std::u16string& str)
{
for(auto c: str)
std::cout << (int) c << std::endl;
}
int main()
{
std::string a{"П"};
std::u16string u16(a.begin(), a.end());
print(u16);
return 0;
}
Так выводится:
65488
65439
Должно быть 1055.
Если я сразу передаю u16string, то всё отображается верно. Как из обычного std::string можно переконвертировать?