CS>std::string это тоже unicode.
CS>там может лежать например utf-8 или например koi8. CS>И то и то есть способ хранить unicode code points.
Я не уверен, что в std::string можно хранить utf-8. Поведение методов типа length и всех от него зависимых не будет учитывыть UTF-8 кодировку и будет возвращать неверные значения.