Encodage accents

Noortch Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Noortch Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train d'écrire un programme qui prend un code source d'une page Web (amazon.fr) et qui le réécrit dans un fichier texte. Mon problème, c'est que certains caractères spéciaux sont bien encodés, mais d'autres non car le code source contient des 'é' ou 'à' sous cette forme là et non sous la forme 'é' ou 'à' et du coup, ceux là se transcrivent avec un point d'interrogation blanc sur fond noir (trop laid ^^)

Quelqu'un a une idée pour m'aider please?

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Comment as-tu fait ton transfert ? Est-ce que tu es passé par des String ? Cela provoque une conversion des caractères qu'il faut bien gérer.

Sinon, plus simple, tu ne passes pas par des String, mais directement par les octets, le fichier écrit sera donc strictement identique à la page web.

public static void main(String[] args) throws IOException
{
    InputStream in = new URL("http://www.amazon.fr/").openStream();
    OutputStream out = new FileOutputStream("C:/amazon.html");
    
    byte[] buffer = new byte[1024];
    
    int n;
    while ((n=in.read(buffer))!=-1)
        out.write(buffer, 0, n);

    out.close();
    in.close();
}
0
Noortch Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
private static String getSourceCode(String url) throws IOException {
URL productSite = new URL(url);
BufferedReader br = new BufferedReader(new InputStreamReader(
productSite.openStream()));

String inputLine;
String code = "";
while ((inputLine = br.readLine()) != null) {
code += "\n" + inputLine;
}
br.close();
return code;
}

Oui effectivement je suis passé par des strings ^^ Je vais tester comme tu dis!
0
Noortch Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
<div class="reviewText">ca aspire m?me pas mal peu encombrant,léger la carcasse semble solide,on à l'impression de promener u

Regarde ce bout de texte qui est ecrit dans mon fichier... ya de tout comme encodage ^^ je comprend pas pourquoi.. ca a rien changé
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu le lis avec quoi ton fichier une fois écrit ?
0
Noortch Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
manuellement (texteditor). enfin la pour verifier en tout cas mais ca change rien, quand ca arrive dans la database, ca reste tel quel avec les trucs bizarres...
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu n'as jamais parlé de base de données... elles aussi ont leur propre encodage, et là aussi il faut soit gérer ça correctement (compliqué), soit ne manipuler que des octets, avec des BLOB.
C'est d'autant plus pertinent que les données que tu vas manipuler sont assez grandes (plusieurs centaines de ko) donc les manipuler en tant que chaînes de caractères ce n'est pas terrible.
0