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?