Re: print formated special characteres

Поиск
Список
Период
Сортировка
От Peter J. Holzer
Тема Re: print formated special characteres
Дата
Msg-id 20201017224437.GA14168@hjp.at
обсуждение исходный текст
Ответ на Re: print formated special characteres  (Matthias Apitz <guru@unixarea.de>)
Ответы Re: print formated special characteres  (Tom Lane <tgl@sss.pgh.pa.us>)
RES: print formated special characteres  ("Celso Lorenzetti" <celso@sysrs.com.br>)
Список pgsql-general
On 2020-10-17 20:51:36 +0200, Matthias Apitz wrote:
> El día sábado, octubre 17, 2020 a las 03:37:46p. m. -0300, Celso Lorenzetti escribió:
>
> > Somebody help me, please.
> >
> > How to make the texts are aligned with 10 characters?
> >
> >
> >
> > elog(INFO, "\n%-10s Fim\n%-10s Fim\n", "Variável", "Variavel");

Which programming language is this? PL/pgSQL?

> Hola Celso,
>
> You can reproduce the same on the UNIX shell with:
>
> $ printf "\n%-10s Fim\n%-10s Fim\n" "Variável" "Variavel"
>
> Variável  Fim
> Variavel   Fim

Hmm. Zsh gets it right:

trintignant:~ 0:31 :-) 1032% printf "\n%-10s Fim\n%-10s Fim\n" "Variável" "Variavel"

Variável   Fim
Variavel   Fim

As do Perl and Python.


> The second test (changing the accented char 'á' by 'X'), shows that the
> problem/bug is a) more generic, not only in PostgreSQL and b) has todo
> with being the UTF-8 char 'á' a two byte char, while 'X' is only one
> byte.

Yes, determining how much space a UTF-8 sequence occupies on screen is
surprisingly hard. I'm not sure what the C standard says about that. But
these days I would expect any programming language to get it right at
least for the simple cases.

        hp

--
   _  | Peter J. Holzer    | Story must make more sense than reality.
|_|_) |                    |
| |   | hjp@hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"

Вложения

В списке pgsql-general по дате отправления:

Предыдущее
От: Matthias Apitz
Дата:
Сообщение: Re: print formated special characteres
Следующее
От: Tom Lane
Дата:
Сообщение: Re: print formated special characteres