given a character like "✮
" (\xe2\x9c\xae
), for example, can be others like "Σ
", "д
" or "Λ
") I want to find the "actual" length that character takes when printed onscreen
for example
len("✮")
len("\xe2\x9c\xae")
both return 3, but it should be 1
My answer to a similar question:
You are looking for the rendering width from the current output context. For graphical UIs, there is usually a method to directly query this information; for text environments, all you can do is guess what a conformant rendering engine would probably do, and hope that the actual engine matches your expectations.
You may try like this:
UTF-8 is an unicode encoding which uses more than one byte for special characters. Check unicodedata.normalize()