std::string
= UTF-8. Для общего использования.Utf16String
= UTF-16. Используется в основном для системных вызовов Windows.
std::wstring
в Windowsstd::basic_string<uint16_t>
в LinuxUtf32String
= UTF-32.
std::basic_string<uint32_t>
в Windowsstd::wstring
в Linux.std::vector<unsigned char>
= нестроковые двоичные данныеВы просто должны привыкнуть думать о строках как о массиве кодовых точек, а не как о массиве символов. При таком представлении все строковые методы работают правильно, кроме find_first_of
/find_last_of
/find_first_not_of
/find_last_not_of
/std::string
.