std::string
na non-Windows jest zazwyczaj używany do przechowywania ciągów UTF8 (jako domyślnego kodowania na najbardziej rozsądnych systemów operacyjnych tej stronie 2010), ale jest to „głupi” kontener, że w tym sensie, że nie wie, lub troszcz się o bajty, które przechowujesz. Będzie działał na czytanie, przechowywanie i pisanie; ale nie do manipulacji ciągami.
Musisz użyć doskonałego i dobrze utrzymanego IBM ICU: International Components dla Unicode. Jest to biblioteka C/C++ dla * nix lub Windows, w której przeprowadzono mnóstwo badań, aby zapewnić biblioteki ciągów kulturowych, w tym rozróżnianie wielkości liter, które są zarówno szybkie, jak i dokładne.
Kolejny dobry projekt to łatwiejsze, aby przełączyć się na C++ deweloperów jest UTF8-CPP
Są znaki Unicode, więc powinieneś być za pomocą szerokich wersje tych funkcji/typów danych: 'std :: wstring' i' std: : wcout'. –
Podstawowe czytanie: http://www.joelonsoftware.com/articles/Unicode.html –
spójrz na to: http://en.cppreference.com/w/cpp/string/multibyte –