po 19. 10. 2020 v 3:18 odesílatel Celso Lorenzetti <celso@xxxxxxxxxxxx> napsal:
Hi Peter,
is language C standart..
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?
This is an internal function available in internal C API.
As Tom Lane said in other mail - this internal API just doesn't support alignment for multibyte encodings.
Regards
Pavel
> 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@xxxxxx | -- Charles Stross, "Creative writing
__/ | http://www.hjp.at/ | challenge!"
--
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus