Obsługuj ciąg UTF-8

jak wiem linux używa kodowania UTF-8. Oznacza to, że mogę użyćstd::string do obsługi ciągu? Tylko kodowanie będzie UTF-8.

Teraz w UTF-8 wiemy, że niektóre znaki to 1 bajt, około 2,3 bajtów. Moje pytanie brzmi: jak radzić sobie z kodowanym kodem UTF-8 w systemie Linux za pomocą C ++?

W szczególności: w jaki sposób można uzyskać długość ciągu w bajtach (lub liczbę znaków)? Jak przemierzyłbyś łańcuch? itp.

Powód, dla którego pytam, jest taki, jak powiedziałem, że znaki UTF-8 mogą mieć więcej niż jeden bajt? Tak oczywiściemyString[7] imyString[8] - może nie odnosić się do dwóch różnych znaków. Również fakt, że łańcuch UTF-8 ma dziesięć bajtów, nie mówi wiele o jego liczbie znaków?

questionAnswers(5)

yourAnswerToTheQuestion