Преобразование между std::u8string и std::string ⇐ C++
-
Anonymous
Преобразование между std::u8string и std::string
В C++20 добавлены char8_t и std::u8string для UTF-8. Однако версии std::cout в формате UTF-8 не существует, а API-интерфейсы ОС в основном ожидают char и набора символов выполнения. Таким образом, нам все еще нужен способ преобразования между UTF-8 и набором символов выполнения.
Я перечитывал статью о char8_t, и похоже, что единственный способ конвертировать между UTF-8 и ECS — это использовать std::c8rtomb и std::mbrtoc8 функции. Однако их API крайне запутан. Может ли кто-нибудь предоставить пример кода?
В C++20 добавлены char8_t и std::u8string для UTF-8. Однако версии std::cout в формате UTF-8 не существует, а API-интерфейсы ОС в основном ожидают char и набора символов выполнения. Таким образом, нам все еще нужен способ преобразования между UTF-8 и набором символов выполнения.
Я перечитывал статью о char8_t, и похоже, что единственный способ конвертировать между UTF-8 и ECS — это использовать std::c8rtomb и std::mbrtoc8 функции. Однако их API крайне запутан. Может ли кто-нибудь предоставить пример кода?
Мобильная версия