Anyone know how to count Unicode glyphs in Vala?
Eg., “” = two glyphs
This is currently what I’m banging my head against.
To wit, what I’ve already tried:
- string.length returns bytes
- get_char_count() returns characters (eg. an emoji might be 5 characters)
- I can’t seem to find a way to split a string into an array of glyphs (in JavaScript: […str].length does the trick). e.g., string.split throws an error in Vala if called with an empty string as the delimiter.
I must be missing something very basic here but can’t seem to find any resources online.
@aral
public static int main (string[] args) {
string str = "";
int letters = str.char_count ();
int bytes = str.length;
// Output: ``letters: 9, bytes: 19``
print ("letters: %d, bytes: %d\n", letters, bytes);
return 0;
}
→ letters: 2, bytes: 8
Using the example found at https://valadoc.org/glib-2.0/string.char_count.html
@refi64 Thanks! I did try that last night but couldn’t initially find a way to get the length (and had to leave it as we’re prepping to move house).
Still, there must be a way to actually count glyphs as the text buffer’s cursor manages to properly…
@refi64 So I finally found a way to do it :) https://ar.al/2021/10/31/how-to-count-unicode-glyphs-in-vala-using-gtk/