Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Documents partagés et UTF-8

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Nicolas Courtel <adresse@cachée>
  • To: David Verdin <adresse@cachée>
  • Cc: sympa-fr <adresse@cachée>
  • Subject: Re: [sympa-fr] Documents partagés et UTF-8
  • Date: Tue, 07 Apr 2009 13:43:36 +0200

Bonjour,


Argh, problème d'encodage...
C'est exactement la réflexion que je me suis fait lorsqu'un utilisateur m'a signalé le problème :-)

Si je comprends bien l'encodage Q (en UTF-8) chaque caractère accentué est encodé sur deux paires de caractères hexadécimaux chacun précédé d'un caractère "=". Par exemple, "é" doit donner "=C3=A9"

Si on regarde la chaîne stockée sur votre serveur, "=?UTF-8?Q?=C3=83=C2=A9t=C3=83=C2=A9?=", on voit qu'il y a deux fois plus de paires, qui signifient (d'après : http://hapax.qc.ca/conversion.fr.html) :

=C3=83 (Ã)
=C2=A9 (©)

Ce qui se traduit normalement par "été". Vous êtse sûr que ce n'est pas ce mot-là qui apparaît, plutôt que 'À©tÀ©' ?

Tout à fait, j'ai tapé ce caractère un peu vite (sur mon clavier Qwerty, '~' = 'Shift `').


Dès lors, il est fort probable que comme, lors d'une tentative d'accès à un fichier, la chaîne de caractères correspondant à son nom est Q-encodée pour le retrouver sur le système de fichiers, chacun des caractères de "été" soit à nouveau traduit en paires de caractères hexadécimaux. ce qui devrait donner deux doublons de part et d'autre du "t", et non 4 comme c'est le cas. Ce que vous trouvez correspond à :

=C3=83 (Ã)
=C2=83 (ƒ)
=C3=82 (Â)
=C2=A9 (©)
t
=C3=83 (Ã)
=C2=83 (ƒ)
=C3=82 (Â)
=C2=A9 (©)

L'encodage ne marche donc jamais. Dès que des données sont envoyées depuis le client vers le navigateur web, la traduction échoue.
Tout se passe comme si les caractères étaient envoyés en Latin 1 (en effet, "é" encodé en UTF-8 donne "é" quand il est affiché en latin 1).

Est-ce que les entête du document HTML indiquent bien un encodage UTF-8 ? Est-ce que vous avez essayé de saisir des caractères accentués ailleurs dans l'interface web ? Y a-t-il eu des problèmes ?

L'entête indique bien charset=utf-8, et je n'ai pas vu de problème d'accent ailleurs : par exemple la saisie du nom d'un abonné avec un accent se passe sans problème. La saisie d'un caractère accentué dans les documents partagés se passe bien également, la création du répertoire aussi (enfin, pour autant que je comprenne le Q-encoding, voir ci-dessous), c'est uniquement à la génération du lien et de l'URL sur l'interface que ça déraille.

Il semble donc y avoir une incompatibilité entre la locale de mon serveur, qui est pourtant bien fr_FR.UTF-8, et un bout de code de Sympa. Je vais regarder cela de plus près. Pourrait-il y avoir des différences pour ce problème entre la version 5.4.5 que j'utilise et la 5.4.7?



Ayant migré récemment de Sympa 5.2.4 vers 5.4.5 en Linux Debian, j'ai des soucis avec les caractères accentués dans les documents partagés. Les noms des fichiers et répertoires comportant des accents sont bien Q-encodés comme l'indique le manuel, mais c'est loin d'être transparent pour les utilisateurs :-) .

Lorsque l'on crée un répertoire, ou que l'on dépose un fichier, les caractères accentués apparaissent encodés; si par exemple je crée un répertoire 'été':
- l'apparence est correcte dans la fenêtre de saisie
- une fois créé, le répertoire apparaît sous la forme 'À©tÀ©' dans l'interface de Sympa, ainsi que dans le lien correspondant
- dans le système de fichier, son nom est par contre '=?UTF-8?Q?=C3=83=C2=A9t=C3=83=C2=A9?=', ce qui me semble correct

Et lorsque je clique sur le lien, l'interface m'indique que le répertoire n'existe pas; en effet, dans le log je constate que chaque caractère accentué a été recherché en double:

do_d_read : unable to read /.../shared/=?UTF-8?Q?=C3=83=C2=83=C3=82=C2=A9t=C3=83=C2=83=C3=82=C2=A9?= : no such file or directory

Le serveur et le client sont tous deux en fr_FR-UTF-8, ce qui semble convenir pour toutes les autres pages de Sympa.

Si quelqu'un a une explication, je suis preneur!


--
Nicolas




Archives gérées par MHonArc 2.6.19+.

Haut de le page