идее можно конвертнуть std::u32string в multi-byte string с помощью std::c32rtomb, но "примет" ли такую строку std::cout? Различает ли как-нибудь стандарт single-byte string и multi-byte string? Можно ещё попробовать конвертнуть multi-byte string в wide string (с помощью std::wcrtomb) и вывести через std::wcout, но тут также возникают два вопроса может ли вместить multi-byte string все символы юникода и может ли вместить wide string все символы юникода?
на мой субъективный взгляд, если тебе нужны юникод строки (32) проще воспользоваться либой ICU. также она позволяет легко конвертить в UTF8 и обратно в 32. и по поводу вывода можно не парится. а ещё там куча полезных штук как, например, приведение символов к нижнему регистру. мне лично с ней проще было работать.
Обсуждают сегодня