Salut,
Wide characters nu e același lucru cu Unicode, ci e fie UTF-16 (Win32 API)
sau caracter UNICODE pe 32 de biți - caz în care un caracter (orice
caracter) are doi/patru octeți. Caracterul Unicode are lungime variabilă de
la 1 la 4 octeți, și %???s probabil se referă la cîți octeți pune acolo.
Lucru util, pentru că probabil tu aloci doar 11 caractere pentru un string
în care faci sprintf ("%10s", string);. Nu văd de ce printf din shell ar fi
cine știe ce diferit față de printf din biblioteca standard C.
Dorin
2010/7/5 Petru Ratiu <[email protected]>
> 2010/7/5 Ionel Mugurel Ciobica <[email protected]>:
> >
> > Pe de alta parte vad ca bash e mai destept, stie ca marti are 5 litere
> > (nu sase cum crede printf):
>
> M-am dat nitel prin bugreportssi cica atat printf de bash cat si ala
> standalone se comporta asa pentru POSIX compliance. Cica un flag 'l'
> l-ar ajuta sa priceapa ca-s wide characters, dar n-am reusit sa-l
> conving sa mearga (gen '%10ls').
>
> Iarasi poate din cauza ca-s mahmur, nu pricep de ce urmatoarea
> secventa nu face ce m-as fi asteptat:
>
> alias myprintf="perl -Mutf8 -CSDL -e 'printf(@ARGV)'"
> for day in luni marți miercuri joi vineri sâmbătă duminică; do
> myprintf '[%10s] ' $day ; done
>
> Da' poate s-o gasi cineva mai treaz sa repare...
> --
> Petre.
> _______________________________________________
> RLUG mailing list
> [email protected]
> http://lists.lug.ro/mailman/listinfo/rlug
>
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug