IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

URLConnection et caractères accentués


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 108
    Par défaut URLConnection et caractères accentués
    Bonjour,

    j'essaye de faire un programme Java qui me permet de lire et d'éditer des pages de Wikipédia. Pour éditer une page, je commence par me logguer et pour vérifier que le login a marché, je recherche la chaîne "Identification réussie."
    Ca ne marche pas, parce que je reçois en fait "Identification réussie.". Comment on gère les caractères accentués correctement ?

    Voici mon code, récupéré depuis http://en.wikipedia.org/wiki/User:MER-C/Wiki.java et modifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
      public boolean login(String username, String password) throws IOException {
        // sanitize
        username = URLEncoder.encode(username, "UTF-8");
        password = URLEncoder.encode(password, "UTF-8");
     
        // "enable" cookies
        String url = wiki.getWikiURL() + "?title=Special:Userlogin";
        URLConnection connection = new URL(url).openConnection();
        grabCookies(connection);
     
        // find the target
        url = wiki.getWikiURL() + "?title=Special:Userlogin&action=submitlogin&type=login";
        connection = new URL(url).openConnection();
        setCookies(connection);
        connection.setDoOutput(true);
        PrintWriter out = new PrintWriter(connection.getOutputStream());
     
        // now we send the data
        out.print("wpName=");
        out.print(username);
        out.print("&wpPassword=");
        out.print(password);
        out.print("&wpRemember=1&wpLoginAttempt=Log+in");
        out.close();
     
        // make it stick by grabbing the cookie
        grabCookies(connection);
        BufferedReader in = null;
        try {
          in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        } catch (IOException e) {
          if (!(connection instanceof HttpURLConnection)) {
            throw e;
          }
          InputStream err = ((HttpURLConnection) connection).getInputStream();
          if (err == null) {
            throw e;
          }
          in = new BufferedReader(new InputStreamReader(err));
        }
        in.readLine();
     
        // test for success
        String line;
        while ((line = in.readLine()) != null) {
          System.err.println(line);
          if (line.indexOf("Identification réussie.") != -1) {
            return true;
          }
        }
        return false;
      }

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Par défaut
    Si tu es sûr que l'encoding est de l'UTF-8 (à vérifier dans l'en-tête HTTP) essaye de remplacer le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    in = new BufferedReader(new InputStreamReader(err));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    in = new BufferedReader(new InputStreamReader(err, "UTF-8"));
    Jacques Desmazières

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 108
    Par défaut
    Merci, je venais aussi de trouver çà en fouillant à droite à gauche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/10/2009, 12h28
  2. Chaines avec caractères accentués dans interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2004, 17h12
  3. Chaînes avec des caractères accentués dans Interbase
    Par Invité dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39
  4. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 16h30
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo