Как получить номер юникод символа из 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 можно переконвертировать?


Ответы (0 шт):