[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash et UTF-8



[Encore désolé pour le cassage de fil, il faudra qu'un jour je
me décide à cjanger de webmail]

[Laurent Giroud]
> > Si tout ce qui t'intéresse est de fournir un bon support
> > pour l'UTF-8, la solution la plus simple est de conserver
> > des char et de changer les routines de calcul de
> > longueur de chaînes, recherche d'expressions, etc. C'est
> > ce que fait la majorité des programmeurs, avec
> > éventuellement conversion du codage si l'utilisateur
> > n'est pas en UTF-8.
>
> Effectivement, c'est mieux qu'utiliser les wchar car
> ceux-ci sont de taille fixe et donc moins souples

D'habitude on préfère au contraire un codage de taille fixe,
mais les problèmes liés à la taille variable sont bénins.

> et surtout imposent un encodage unicode

Faux.

> alors que conserver des char permet de gérer n'importe
> quel type d'encodage supporté par la locale (via la libc).
> La quantité de travail est équivalente en revanche.

Non, manipuler les wide chars n'est pas trivial, il est plus
simple d'utiliser de l'UTF-8 pour gérer les chaînes de
caractères.

[...]
> Mais néanmoins, la libc et gettext gèrent déjà
> automatiquement l'encodage en fonction de la locale, si la
> lib de recherche d'expressions le gère également, c'est
> autant de travail en moins (j'ose espérer que tout le
> monde ne réécrit pas ses propres routines de gestion de
> chaînes dans son coin).

Puisque tu parles de la recherche d'expression, regarde
http://mail.nl.linux.org/linux-utf8/2003-11/msg00027.html
ainsi que les premiers bogues de http://bugs.debian.org/grep
Le développeur de grep a dû utiliser une routine de
conversion automatique de ses sources, sans réfléchur ;)

L'affichage du texte dans le bon codage n'est qu'une partie
du problème, il faut penser aux formats de dates, aux
caractères occupant 0 ou 2 colonnes (quand il y a une
justification, comme dans dselect), aux langues s'écrivant
de droite à gauche ou n'utilisant pas d'espaces comme
séparateur de mots, comment l'utilisateur va entrer du
texte, changer les messages s'ils sont saucissonnés comme
dans apt ou dpkg, etc.
Il faut en même temps très bien connaître le code qu'on
modifie, et comprendre les problèmes de l10n, ce n'est pas
toujours aussi évident qu'un simple « Hello, world! ».

--
Denis

Accédez au courrier électronique de La Poste : www.laposte.net ; 
3615 LAPOSTENET (0,34?/mn) ; tél : 08 92 68 13 50 (0,34?/mn)





Reply to: