Thai is a very special language. You can write vowels (32 in total) as in any other languages right after the consonant, or IN FRONT of it, or ON TOP of it, or ON THE BOTTOM of it (ok, just the short and long "u" sound can go on the bottom, but anyway...).
Furthermore, there are other modifiers (the 4 tone markers, the ga-ran, the mai-tai-ku and other ones) that can go ON TOP of an already existing vowel!
For example:
ที่ดีที่สุด (the best)
As you can see, if I try to print it with a monospaced font, the "real length" would be of 5 characters, but all the UTF-8 strlen routines give me back 11 characters - which is TOTALLY CORRECT, but I need to know the "actual space" that the string will use on screen/on printer, when printed monospaced.
Sure, an easy solution would be to list all the special characters that can go on the top or on the bottom of the word, and remove them from the total count.
Since I am not sure I can find all the special characters, is there already a routine made in any language so that I can translate it in Delphi?
Thank you