Bonjour

je récupère en PHP une liste de noms issue d'un fichier xls, et pour chacun de ces noms, je construis une url :
$url="http://---=".$lastname.","


et ensuite je lis le fichier xml pointé par cette url :
$res=$dom->load($url);  
  $listeText = $dom->getElementsByTagName('text');
  $i=0;
    if ($res) { foreach($listeText as $text) {
        
        if (!(($i++)%3)) {

    $patronyme=strtolower($text->firstChild->nodeValue);
        echo "patr=".$patronyme."<br>";
}}}
 



Bien sûr, ce code n'est qu'essai.
En général, l'encodage de l'URL (récupéré par mb_detect_encoding($url) ) est de l'ASCII et ça se passe bien ; par contre, il y a un problème si le patronyme est composé en plusieurs morceaux et qu'il vient de ce fichier xls (car si je mets en dûr $lastname="nom en plusieurs parties", ça se passe bien aussi). C'est donc clairement un problème d'encodage. Quelqu'un saurait-il comment je peux m'en sortir ?
Modérateur
Bonjour,

Une solution à base de mb_detect_encoding est forcément bancale : il est impossible de déterminer de façon parfaitement fiable l'encodage d'une chaîne de caractères. Comment obtiens-tu exactement $lastname ? Ne peux-tu pas connaître l'encodage de cette chaîne ?
Bonjour et merci de me répondre. Cela dit, c'est maintenant résolu, car il s'agissait d'un espace bizarrement encodé et j'ai remplacé son code ascii par 32 et tout va bien. Smiley blushie