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 -
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?
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
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.
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(); }
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!
Regarde ce bout de texte qui est ecrit dans mon fichier... ya de tout comme encodage ^^ je comprend pas pourquoi.. ca a rien changé
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.