sdx-users
[Top][All Lists]
Advanced

[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




reply via email to

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