sdx-users
[Top][All Lists]
Advanced

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

Re: [sdx-users] Changement a SDX : meilleure gestion des caracteres non


From: Michel Bottin
Subject: Re: [sdx-users] Changement a SDX : meilleure gestion des caracteres non ASCII?
Date: Thu, 18 Sep 2003 14:37:05 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030827

Bonjour,

J'applaudis des quatre mains! Plus vite on passera au tout Unicode (UTF-8) mieux ça vaudra. S'il y a des applis à modifier, ce sera à faire une seule fois et l'on n'aura jamais  y revenir.

Michel

Martin Sevigny wrote:
Bonjour,

Avant d'entreprendre un changement mineur à SDX mais qui pourra demander
des ajustements (également mineurs) aux applications existantes, je
voulais sonder la communauté d'utilisateurs.

Sujet : la prise en compte des jeux de caractères autres que ISO Latin 1
en affichage, en recherche, en URL...

Problématique :

Dans une application SDX, le jeu de caractères des pages HTML envoyées
au client est défini par le "sérialiseur", lui-même déclaré dans le
sitemap. Ainsi, si vous avez recopié les sitemaps livrés avec SDX, vous
avez probablement un truc du genre:

<map:serializer name="html" mime-type="text/html"
src="">
  <encoding>ISO-8859-1</encoding>
</map:serializer>

Ce qui signifie que les pages HTML seront envoyées en ISO Latin 1.

Si dans une telle page HTML, vous avez un formulaire de recherche, et
que vous saisissez une recherche telle que "église", le jeu de
caractères utilisé pour envoyer ce mot au serveur sera également l'ISO
Latin 1.

Il faut donc que le serveur (Tomcat, Cocoon, SDX) s'attende à recevoir
de l'ISO Latin 1. Puisque c'est la valeur par défaut, ça marche très
bien.

Mais si vous modifiez votre sérialiseur pour envoyer les pages HTML en
UTF-8 (bonne pratique!), les données de recherche (ou de tout
formulaire) seront également envoyées en UTF-8, mais si vous ne faites
rien de spécial sur le serveur, elles seront interprétées en ISO Latin 1
(le défaut...) et donc la recherche ne fonctionnera pas.

Pour que ça fonctionne, il faut modifier le fichier sdx/WEB-INF/web.xml,
en y ajoutant un paramètre d'initialisation de Cocoon:

<init-param>
  <param-name>form-encoding</param-name>
  <param-value>UTF-8</param-value>
</init-param>

Si vous me suivez bien, cela signifie que le jeu de caractères des pages
HTML et le jeu de caractères que le serveur utilise pour interpréter les
requêtes (URL) doit être le même.

Et si vous me suivez encore, le jeu de caractères des pages HTML dépend
des sitemap, et donc des applications SDX, alors que le jeu de
caractères d'interprétation des URL dépend de l'installation de SDX,
donc de toutes les applications.

Si vous voyez une faille dans ce raisonnement, veuillez le signaler. Par
ailleurs, nous avons testé ces conclusions sur des serveurs Linux et
Windows, avec les navigateurs IE, Mozilla et Opera sous Windows, Mozilla
sous Linux. Je signale que le W3C recommande
(http://www.w3.org/International/O-URL-code.html) de tout faire en
UTF-8, peu importe le jeu de caractères de la page.

Proposition de changement:

Dans SDX, il y a le fichier web.xml qui ne contient pas le paramètre
pour l'UTF-8, de même que trois sitemaps (racine, dossier sdx, dossier
sdxtest). Dans les trois, le sérialiseur HTML est défini en ISO Latin 1.
Je propose de modifier ces quatre documents pour tout mettre en UTF-8.
Si on ne considère que ce qui est livré avec SDX (interface
d'administration, application sdxtest), ce sera transparent et tout
fonctionnera normalement.

Toutefois, si on fait cela, et que vous installez votre application
existante sur un nouveau SDX, la recherche (par exemple) sur des
caractères accentués (ou arabes, chinois, ...) ne fonctionnera pas, car
il y a fort à parier que votre application envoie les pages HTML en ISO
Latin 1.

Dans ce cas, vous auriez l'une des deux modifications suivantes à faire:

- modifier le web.xml de SDX pour remettre l'ISO Latin 1 (déconseillé
IMHO)
- modifier votre ou vos sitemaps pour mettre le sérialiseur HTML à UTF-8
(conseillé)

Dans les deux cas, la modification est très très simple.

S'il n'y a pas de réticence, je propose de faire cette modification dans
les sources 2.1 et 2.2 de SDX. Ainsi, les prochaines livraisons
(imminentes pour 2.1.1, bientôt pour 2.2) inclueraient ces changements.

Qu'en pensza-vous?

A bientôt,

Martin Sévigny



_______________________________________________
sdx-users mailing list
address@hidden
http://mail.nongnu.org/mailman/listinfo/sdx-users


  


-- 
Michel Bottin - Chef de projet Internet
Ministère de la culture / DAG / DSI / MIVT
rue du Fort de Saint-Cyr - Montigny-le-Bretonneux
78182 Saint-Quentin-en-Yvelines Cedex - France
tél. : +33 1 30 85 67 86 - fax : +33 1 30 85 68 68
plan d'accès : http://www.mappy.fr/PlanPerso/46460/2
mailto:address@hidden - http://indy.culture.fr/bottin 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]