[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17196: UTF-8 printf string formating problem
From: |
Leslie S Satenstein |
Subject: |
bug#17196: UTF-8 printf string formating problem |
Date: |
Thu, 8 May 2014 19:16:45 -0700 (PDT) |
Perhaps printf() needs some wide character extensions via %new characters
Regards
Leslie
Mr. Leslie Satenstein
SENT FROM MY OPEN SOURCE LINUX SYSTEM.
>________________________________
> From: Pádraig Brady <address@hidden>
>To: Jan Novak <address@hidden>
>Cc: address@hidden
>Sent: Sunday, April 6, 2014 6:15 AM
>Subject: bug#17196: UTF-8 printf string formating problem
>
>
>On 04/06/2014 12:17 AM, Jan Novak wrote:
>> Hello,
>>
>> printf string format counts bytes instead of chars, which leads to broken
>> output ...
>> (the same problem occurs with bash built in printf)
>>
>>
>> just try this:
>>
>> $ echo $LANG
>> us_US.UTF-8
>>
>>
>> $ printf "|%3s|\n" "a"
>> | a|
>>
>> $ printf "|%3s|\n" "á" (char is a-acute)
>> | á|
>>
>> expected output:
>> | á|
>>
>> Is there some easy solution ?
>>
>> TIA for the answer
>
>Yes printf follows the C standard which only considers bytes.
>awk does respect characters in width specifiers though:
>
> $ awk 'BEGIN{printf "|%3s|\n", "á"}'
> | á|
>
>I don't think we'd be able to change the current operation of printf
>due to backwards compat reasons? Though we might be able to somehow leverage
>the existing multibyte character aware alignment/truncation code in:
>http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=blob;f=gl/lib/mbsalign.c;hb=HEAD
>
>thanks,
>Pádraig.
>
>
>
>
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#17196: UTF-8 printf string formating problem,
Leslie S Satenstein <=