[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sdx-users] Problème avec l'encodage des documents
From: |
Pierrick Brihaye |
Subject: |
Re: [sdx-users] Problème avec l'encodage des documents |
Date: |
Mon, 23 Dec 2002 12:57:28 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.1) Gecko/20020823 Netscape/7.0 |
Bonjour,
Pierre Dittgen a écrit:
Pour l'affichage de mes pages, j'utilise le serializer XHTML avec
l'encodage UTF-8.
OK. Le mot important est "pour l'affichage" :-)
Le caractère "é" a étéurlencodé avec 2 caractères, plutôt logique pour
de l'UTF-8.
On est d'accord : le navigateur ayant reçu un encodage UTF-8, il traite
le form en UTF-8... la partie client semble donc fonctionner comme attendu.
> Où est géré l'encodage utilisé par l'indexation Lucène ? J'ai précisé
> l'encodage UTF-8
Dans l'analyseur... mais il faudrait savoir lequel est utilisé. Dans
tous les cas, au vu du code actuel, l'encodage utilisé dans les
analyseurs semble être l'encodage *par défaut* de la JVM.
Ce qui signifierait que mes documents ont été indexés en iso-8859-1 et
non en UTF-8 ?
Sans doute. Quel est l'encodage de la JVM ? Pour le savoir, on peut
rédiger un fichier TestEncoding.java avec le code suivant (repris de
http://forum.java.sun.com/thread.jsp?forum=37&thread=168604) :
import java.io.PrintStream;
import sun.io.*;
import java.io.*;
public class TestEncoding {
public static void main(String argv[]) {
String encProperty = System.getProperty("file.encoding");
String byteToCharClass =
sun.io.ByteToCharConverter.getDefault().getClass().getName();
String charToByteClass =
sun.io.CharToByteConverter.getDefault().getClass().getName();
System.out.println("encProperty == '" + encProperty + "'");
System.out.println("Default ByteToChar Class == '" +
byteToCharClass + "'");
System.out.println("Default CharToByte Class == '" +
charToByteClass + "'");
ByteArrayOutputStream buf = new ByteArrayOutputStream(10);
OutputStreamWriter writer = new OutputStreamWriter(buf);
System.out.println("OutputStreamWriter encoding = " +
writer.getEncoding());
}
}
En gros, l'idée serait de lancer la machine virtuelle avec l'option
-Dfile.encoding=UTF-8. L'emplacement idéal serait la variable
d'environnement CATALINA_OPTS si c'est Tomcat qui est utilisé. Voir par
exemple :
http://www.opencms.org/opencms/opencms/service/installation50.html
Tenez-moi au courant ; je pense que ce problème pourrait figurer en
bonne place dans les FAQ de SDX.
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden