StringUnits.jl is a package which provides units for indexing strings: by codeunit, by character, by grapheme, and by textwidth.
julia> str = "aλ🤔∅👨🏻🌾!"
"aλ🤔∅👨🏻\u200d🌾!"
julia> str[3ch]
'🤔': Unicode U+1F914 (category So: Symbol, other)
julia> str[1cu]
0x61
julia> str[5gr]
"👨🏻\u200d🌾"
julia> str[2ch:4ch]
"λ🤔∅"
julia> str[2ch:5ch + 0gr]
"λ🤔∅👨🏻\u200d🌾"
For details, see the documentation