Chuck Swiger wrote:
On Jan 26, 2009, at 1:58 PM, Svein Halvor Halvorsen wrote:
As far as I can see, printf is not calculating strings lengths correctly when using utf-8 encoding. Either that, or I'm using byte count, and can't find the character count :-/

printf(1) explicitly states that it works with ASCII and ANSI X3.159-1989 (``ANSI C89'') character escapes, and it also notes:

Multibyte characters are not recognized in format strings (this is only a
     problem if `%' can appear inside a multibyte character).

Some platforms have a printf_l(3) which is locale/xlocale-aware, but there doesn't seem to be a corresponding CLI utility which understands Unicode/UTF8/widechars.

Thanks for your explanation.

Do you have a suggestion to solve the following problem without using printf(1):

I have a text file that I want to print in a "box" on a terminal from a shell script. Now I've padded the lines with spaces to a certain length using printf %-70s and appended the box drawing character. Is there another simple way that will work with utf-8?


        sv.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to