Working with no ASCII string for asian alphabets

Hi,

I’m having problems slicing a std::string to limit it’s length as some characters are represented with more than one char (which is a byte).
I’ve seen cases where a printed character takes 2 bytes (í = 03, 55), while others have 3 (字 = 45, 55, 27).

How can I know the real length in printed chars of the string? How can I split it correctly?

Thanks!