Encodage utf8 / iso 8859-1

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par rudddy, 28 Février 2011.

Tags:
  1. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    Bonjour,

    j'ai un souci d'encodage qq part et je trouve pas le problème.

    Sur http://www.info-maison-de-retraite.fr/maison-retraite,dp1-07,ardeche.html, les liens de navigation en bas affichent ardnyche au lieu de ardeche
    - Tous mes fichiers sont encodés en utf8
    - La BD est en iso8859-1
    - Chaque query est précédée d'un "SET NAMES 'utf8'"
    - L'affichage d'Ardèche dans la page est OK avec l'accent
    - la pagination est appelée par ce script (super au passage) auquel a été rajouté ce script :
    Code:
    unction rename_string($var,$sep='-') {
    	$var = strip_tags($var);
    	$var = trim(strtolower($var));
    	$var = strtr($var, "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ", "aaaaaaooooooeeeeciiiiuuuuyn");
    	$var = eregi_replace("'", " ", $var);
    	$var = eregi_replace("/", " ", $var);
    	
    	$var1 = '';
    	for($i=0;$i<=strlen($var)-1;$i++) {
    	$tmp = $var{$i};
    	if( eregi('[a-z]', $tmp) or eregi('[0-9]', $tmp) )
    		$var1 .= $tmp;
    	elseif( $tmp == ' ' or $tmp == $sep )
    		$var1 .= $sep;
    	}
    	
    	$imp = array();
    	foreach( explode($sep, $var1) as $e ) {
    		if( !empty($e) )
    			$imp[] = $e;
    		} 
    	
    	return implode($sep, $imp);
    }
    Malgré ça, je bloque !

    Merci de votre aide
     
  2. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    et ton fichier php a été enregistré avec quel jeu de caractères (voir avec pspad ou notepad++) ?
     
  3. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    sinon je viens de voir grâce à spout que sprintf peut corrompre certaines chaines utf8, et le script de pagination est généré par sprintf ...
     
  4. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Ce ne serait pas ton strtr le problème? C'est explicitement du single-byte, donc si ton source et/ou ta variable à examiner sont en UTF-8, ça va mal se finir... Et il n'y a pas de version multi-byte, donc tu ne peux t'en servir que sur du single-byte (ISO-8859-*, quoi).

    De façon générale, le strtr c'est à mon avis pas la meilleure solution. Si tu as un php >= 5.3.0, tu peux tenter:
    Code:
    preg_replace('\pM','',normalizer_normalize($string, Normalizer::FORM_D))
    Jacques.
     
  5. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    non malheureusement j'ai un php < 5.3.0 :-(
     
  6. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    722
    J'aime reçus:
    0
    Faudrait penser à mettre à jour tes bookmarks, ca fait 2 ans que -seebz.be est devenu -seebz.net :mrgreen:

    Bon sinon, peut-être que cette fonction pourrait t’intéresser (à n'appliquer que sur le nom de région sinon tes virgules vont aussi sauter)
     
  7. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Dans ce cas, si tu veux utiliser strtr il faut que la chaîne à manipuler ET ton code source soient en iso-8859.

    Alternative: preg_replace avec des arrays de part et d'autre, genre:
    Code:
    preg_replace(array('à','ã','é','è'),array('a','a','e','e'),$var)
    (à compléter)

    Autre option: htmlentities puis preg_replace pour virer les accents, voir par exemple http://uk.php.net/manual/en/function.preg-replace.php#90485

    Jacques.
     
  8. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    :mrgreen: comme quoi je suis pas un nouvel admirateur ^^

    NICKEL !!!

    merci bcp
     
  9. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    c'est exactement ta solution aussi

    merci à vous 2

    j'ai un dilemme : à qui je mets la reco ? :?: :?:
     
  10. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    722
    J'aime reçus:
    0
    C'est vrai, et c'est pas la première fois que tu recommandes un de mes travaux il me semble (p'tit merci pour la cause :D )


    J'ai jamais compris l'intérêt donc je passe... et je préfère dix fois une recommandation du genre "super script au passage" :mrgreen:
     
  11. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    donc c'est pour jcaron une reco et pour le belge, merci pour ton script !!!
     
Chargement...
Similar Threads - Encodage utf8 iso Forum Date
Soucis d'encodage apostrophe UTF8 Développement d'un site Web ou d'une appli mobile 10 Octobre 2011
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
Fonction d'encodage utf8 incompréhensible Développement d'un site Web ou d'une appli mobile 4 Juillet 2008
Travailler dans un univers : encodage utf8 Développement d'un site Web ou d'une appli mobile 14 Août 2007
API Google et perl : comment supprimer l'encodage UTF8 ? Google : l'entreprise, les sites web, les services 4 Avril 2004
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
encodage volage Développement d'un site Web ou d'une appli mobile 6 Juin 2016
[résolu] recupération de flux xml et erreur encodage des caractères Développement d'un site Web ou d'une appli mobile 27 Janvier 2016
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
Encodage accents sur Prestashop Débuter en référencement 20 Septembre 2013
L'encodage dans les snippets Google Débuter en référencement 13 Février 2013
Encodage problématique Développement d'un site Web ou d'une appli mobile 14 Septembre 2012
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
Encodage à la génération d'un fichier Développement d'un site Web ou d'une appli mobile 11 Juillet 2011
Encodages Développement d'un site Web ou d'une appli mobile 11 Juin 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