Моя платформа - Mac и C++ 11 (или выше). Я новичок C++ и работаю над личным проектом, который обрабатывает китайский и английский языки. UTF-8 является предпочтительным кодированием для этого проекта.
Я прочитал несколько сообщений о переполнении стека, и многие из них предлагают использовать std::string при работе с UTF-8 и избегать wchar_t как теперь нет char8_t для UTF-8.
Однако ни один из них не говорит о том, как правильно обращаться с такими функциями, как str[i], std::string::size(), std::string::find_first_of() или std::regex поскольку эти функции обычно возвращают неожиданные результаты при столкновении с UTF-8.
Должен ли я продолжать std::string или переключиться на std::wstring? Если я должен остаться с std::string, то для чего лучше всего справиться с вышеуказанными проблемами?