printf and utf-8
frank at shute.org.uk
Wed Jan 28 22:36:47 PST 2009
On Tue, Jan 27, 2009 at 12:05:28AM +0100, Svein Halvor Halvorsen wrote:
> 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
> Thanks for your explanation.
> Do you have a suggestion to solve the following problem without using
> 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?
What's your perl like?
Looks like they might be interesting.
Contact info: http://www.shute.org.uk/misc/contact.html
More information about the freebsd-questions