captain_torche Posté 25 Mai 2012 Partager Posté 25 Mai 2012 Bonsoir, Je suis en train de travailler sur la fonction de SStephane qu'il avait fournie ici : http://www.webmaster...105#entry337105, fonction qui transforme une chaîne de caractères en url. Je voudrais convertir des noms de villes en urls, mais je n'obtiens pas le même résultat en local ou sur mon serveur distant. Voici le code en question : <?php $tab_villes = array( 'Athènes', 'Gdańsk', 'Poznań', 'Wrocław', 'Iaşi' ); function string_to_url($str) { $str = preg_replace('~[^\\pL\d]+~u', '-', $str); $str = trim($str, '-'); $str = iconv('utf-8', 'us-ascii//TRANSLIT', $str); $str = strtolower($str); $str = preg_replace('~[^-\w]+~', '', $str); return $str; } foreach($tab_villes as $ville) echo string_to_url($ville).'<br>';?> En local, j'obtiens le résultat attendu, à savoir : athenesgdansk poznan wroclaw iasi Alors que sur mon serveur distant, j'obtiens ceci : athnesgdask pozna wrocaw iai Les caractères accentués (Quels qu'ils soient) sont tout bonnement supprimés. Il faudrait apparemment que je configure le serveur, mais je n'arrive pas à trouver comment. Lien vers le commentaire Partager sur d’autres sites More sharing options...
BlackPage Posté 25 Mai 2012 Partager Posté 25 Mai 2012 Salut, Déjà ca ne fait pas de mal de faire un petit AddDefaultCharset UTF-8 dans ton .htaccess pour être sur que ton serveur renvoie bien des pages en UTF8... Le respect des encodages est une vraie galère, donc bon courage Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nicolas Posté 25 Mai 2012 Partager Posté 25 Mai 2012 Bonjour Captain, P-e que ca vient de l'encodage par défaut (de php) qui est différent sur ton serveur ? En local il semble être en UTF-8 mais pas sur ton serveur (ou l'inverse). Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 25 Mai 2012 Auteur Partager Posté 25 Mai 2012 La modif en .htaccess n'a rien changé, mais merci de la piste. J'ai aussi essayé de triturer le setlocale, sans succès pour l'instant. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Solution captain_torche Posté 25 Mai 2012 Auteur Solution Partager Posté 25 Mai 2012 Je crois que je viens de trouver : avec un "simple" setlocale(LC_CTYPE, 'fr_FR'); Alors que je tentais depuis le début de modifier le paramètre LC_ALL. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nicolas Posté 25 Mai 2012 Partager Posté 25 Mai 2012 Tu peux essayer de faire un utf8_decode() sur les valeurs de ton tab_villes pour voir si ca vient de là Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant