Problème d'encodage de chaines dans les url

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par MadMatt, 15 Mars 2008.

  1. MadMatt
    MadMatt Nouveau WRInaute
    Inscrit:
    2 Septembre 2007
    Messages:
    16
    J'aime reçus:
    0
    Bonjour à tous,

    J'ai précédemment cherché, mais pas trouvé de solution à mon problème.

    En fait j'ai récemment installé un système de génération dynamique du sitemap de mon site. C'est à dire que chaque page demandée par un visiteur est enregistrée dans une table. Ensuite quand on demande mon sitemap.xml, je le génère à la volée grace à mon script dans sitemap.php.
    Tout cela marche bien, excepté que je remarque dans mon sitemap des url formatée bizarrement. Et elles sont pareil dans la base de données, donc j'en déduis que c'est au moment de récupérer l'url pour l'enregistrer dans la base de données que y'a un problème.

    Ces url bizarre sont formées avec le moteur de recherche. Il s'agit d'un formulaire qui fonctionne en GET (et pas en post pour pouvoir référencer les pages résultat).
    Par exemple si je recherche "aérothermie", je vais bien avoir dans mon sitemap l'adresse de la forme :
    http://www.choisir-une-entreprise.com/annuaire.php?s=a%E9rothermie

    Mais j'ai remarqué qu'il y a aussi l'adresse suivante de référencée :
    http://www.choisir-une-entreprise.com/annuaire.php?s=a%EF%BF%BDrothermie

    Et quand on visite la dernière page, on se rend compte que l'encodage ne marche pas, ça me met plein de caractères bizarres.

    Donc ma question, c'est pourquoi l'url est-elle encodée de cette façon sur certaines url, cela dépend-il du navigateur ? de l'encodage de ma page ? ou alors de mon script PHP qui récupère l'url ?

    Voici le script au passage :
    // Ajoute un site au sitemap
    function Sitemap_AddSite( $Url ) {
    $DateAjout = date('Y-m-d');
    $req = "INSERT INTO sitemap
    (Url, SitemapFile, DateAjout, DateAffichage)
    VALUES
    ('$Url', '" . SITEMAP . "', '$DateAjout', '$DateAjout')";
    $result = mysql_query($req);
    }


    $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    Sitemap_AddSite($url);


    PS : j'ai mis les liens vers mon vrai site, c'est pour que vous puissiez voir le résultat, je n'ai que peu d'intérêt à faire de la pub pour mon site de cette façon.

    Merci !

    Matthieu :? :D
     
  2. FloBaoti
    FloBaoti WRInaute impliqué
    Inscrit:
    30 Avril 2006
    Messages:
    640
    J'aime reçus:
    0
    RFC 1738 (Uniform Resource Locators (URL)) : http://www.faqs.org/rfcs/rfc1738.html

    Paragraphe 2.2.: URL Character Encoding Issues

    :lol:

    En résumé, c'est un standard. Les caractères spéciaux dans une URL sont encodés par "%" + le code hexadécimal du caractère.
    Si tu ne présentes pas tes URLs ainsi, les navigateurs le font.
     
  3. MadMatt
    MadMatt Nouveau WRInaute
    Inscrit:
    2 Septembre 2007
    Messages:
    16
    J'aime reçus:
    0
    Merci, je sais lol, relis ce que j'ai écris :

    J'ai une forme d'adresse correcte avec encodage en "% + code héxa" correct, mais j'ai également des adresses (pour les mêmes pages) ou l'encodage est de la même forme, mais différent.
    Et dans cette seconde forme, ça me donne des adresses qui ne marchent pas, ou alors qui me génèrent des erreurs.
     
  4. FloBaoti
    FloBaoti WRInaute impliqué
    Inscrit:
    30 Avril 2006
    Messages:
    640
    J'aime reçus:
    0
    Dans l'exemple que tu donnes, la deuxième URL semble provenir d'un client un peu fou-fou. A priori, c'est un navigateur qui voudrait tout traiter en UTF-8, et qui n'arrive pas à interpréter le "e accent aigu", donc il le remplace et t'envoie le "replacement character" UTF-8 (cf http://en.wikipedia.org/wiki/Replacement_character ).
    Ce caractère spécial est effectivement codé "0xEF 0xBF 0xBD".

    Tu n'as rien en UTF-8 de ton côté? Ni base de données, ni dans le PHP?
    Dans ce cas, c'est un visiteur qui a un navigateur bien étrange.

    Si ça cause des erreurs de ton côté, tu peux toujours essayer un utf8_decode() sur la chaine recherchée. Ca ne renverra aucun résultat à priori, mais ça ne devrait pas causer d'erreurs.
     
  5. MadMatt
    MadMatt Nouveau WRInaute
    Inscrit:
    2 Septembre 2007
    Messages:
    16
    J'aime reçus:
    0
    Dacc merci bien, au moins l'erreur ne provient pas de mon site (rien en utf8 nulle part de mon côté).

    Bonne journée
     
Chargement...
Similar Threads - Problème encodage chaines Forum Date
Problème d'encodage Développement d'un site Web ou d'une appli mobile 30 Janvier 2015
Problème d'encodage caractère Google+ 6 Août 2014
Problème encodage UTF-8 Problèmes de référencement spécifiques à vos sites 4 Octobre 2013
Problème d'encodage... Développement d'un site Web ou d'une appli mobile 2 Mars 2012
Problème d'encodage url les é devient %E9 URL Rewriting et .htaccess 22 Décembre 2011
Problème d'affichage des entrées SQL (encodage) Développement d'un site Web ou d'une appli mobile 16 Avril 2011
Problème encodage de mon Blog utf-8 et iso-latin Développement d'un site Web ou d'une appli mobile 13 Février 2011
Analyse des balises meta problème d'encodage Développement d'un site Web ou d'une appli mobile 8 Février 2011
probleme d'encodage Développement d'un site Web ou d'une appli mobile 26 Octobre 2010
probleme encodage Développement d'un site Web ou d'une appli mobile 17 Avril 2010
Crawl ne dépasse pas la page d'accueil et semblant de problème d'encodage Administration d'un site Web 8 Mars 2010
Problème d'encodage "é" en é ! Développement d'un site Web ou d'une appli mobile 6 Février 2010
Problème d'encodage? Développement d'un site Web ou d'une appli mobile 27 Janvier 2010
problème encodage Développement d'un site Web ou d'une appli mobile 19 Septembre 2009
Problème de fou avec parsage de flux xml traded*** et encodage utf8 en php Développement d'un site Web ou d'une appli mobile 16 Septembre 2009
[MYSQL/PHP] Probleme d'encodage et serialize Développement d'un site Web ou d'une appli mobile 22 Juin 2009
Problème encodage iso et utf-8 Joomla 1.0.15 Développement d'un site Web ou d'une appli mobile 15 Juin 2009
Problème d'encodage Développement d'un site Web ou d'une appli mobile 23 Mai 2009
Problème d'encodage de l'apostrophe ’ Développement d'un site Web ou d'une appli mobile 10 Avril 2009
Problème d'encodage Développement d'un site Web ou d'une appli mobile 23 Février 2009