I believe that there is a C/C++ function ("mbstowcs" ??) to figure out how "wide" a UTF string really is.
Google also tells me that there's a Unicode C/C++ library called "ICU" at site.icu-project.org.
Presumably, a Lisp the supports UTF characters already provides a call to these sorts of functions.
Supposedly, CLISP's char-width and string-width call wcwidth and wcswidth, respectively.
At 01:32 PM 2/8/2013, Robert Dodier wrote:
>Yes, Maxima + UTF-8-aware Lisp + UTF-8 terminal => happiness. I've tried it.
>
>The only problem, so far as I can tell, is that combining characters
>which occur in some languages (i.e. there are multiple character objects
>which are displayed as a single glyph or whatever you want to call it)
>confuse the pretty printer, since their size on the display isn't any
>simple function of the number of characters.