[Bug 1654688] Re: Printf does not properly justify non-ASCII characters
xhienne
1654688 at bugs.launchpad.net
Fri Jun 16 14:58:12 UTC 2017
In my opinion, this is not a bug (and probably not a feature either) but
the expected behavior.
bash's printf is a slightly modified version of the underlying printf()
function provided by the C standard library. The printf(3) manual
explicitly states that the precision is a number of _bytes_, not a
number of characters. So this is the expected result with multibyte
characters like 'á'.
You might want to switch to a ISO-8859 character set if you want your
'á' character to only take one byte of memory.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/1654688
Title:
Printf does not properly justify non-ASCII characters
Status in bash package in Ubuntu:
New
Bug description:
I have a script that outputs arbitrary Unicode characters in neat
columns, but for anything outside the Basic Latin range (i.e.
codepoints > 127), the justification is off. For example, both below
commands should output a leading space:
$ printf "%2s\n" 'a'
a
$ printf "%2s\n" 'á'
á
The spacing problem starts between U+7F and U+80. If you try to print
two leading spaces, the same problem occurs between U+7FF and U+800.
This affects the binary /usr/bin/printf as well, but I'm not sure
where to report a bug for that.
Ubuntu version: 14.04.5
Bash version: 4.3-7ubuntu1.5 (latest)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1654688/+subscriptions
More information about the foundations-bugs
mailing list