Моя платформа - 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
, то для чего лучше всего справиться с вышеуказанными проблемами?