encodage utf8 / iso 8859-1
11 messages
• Page 1 sur 1
-

rudddy - WRInaute accro

- Messages: 2570
- Inscription: 1 Aoû 2007
encodage utf8 / iso 8859-1
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 :
Malgré ça, je bloque !
Merci de votre aide
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: Tout sélectionner
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
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: encodage utf8 / iso 8859-1
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:
Jacques.
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: Tout sélectionner
preg_replace('\pM','',normalizer_normalize($string, Normalizer::FORM_D))
Jacques.
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: encodage utf8 / iso 8859-1
Faudrait penser à mettre à jour tes bookmarks, ca fait 2 ans que -seebz.be est devenu -seebz.net
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)
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)
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: encodage utf8 / iso 8859-1
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:
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.
Alternative: preg_replace avec des arrays de part et d'autre, genre:
- Code: Tout sélectionner
preg_replace(array('à','ã','é','è'),array('a','a','e','e'),$var)
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.
-

rudddy - WRInaute accro

- Messages: 2570
- Inscription: 1 Aoû 2007
Re: encodage utf8 / iso 8859-1
seebz a écrit:Faudrait penser à mettre à jour tes bookmarks, ca fait 2 ans que -seebz.be est devenu -seebz.net
seebz a écrit: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)
NICKEL !!!
merci bcp
-

rudddy - WRInaute accro

- Messages: 2570
- Inscription: 1 Aoû 2007
Re: encodage utf8 / iso 8859-1
jcaron a écrit: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.
c'est exactement ta solution aussi
merci à vous 2
j'ai un dilemme : à qui je mets la reco ?
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: encodage utf8 / iso 8859-1
rudddy a écrit:comme quoi je suis pas un nouvel admirateur ^^
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
rudddy a écrit:j'ai un dilemme : à qui je mets la reco ?![]()
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"
11 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [Résolu] charset ISO 8859 et accents codés en UTF8
- Encodage ISO-8859-1: paramètrage éditeur de code ?
- Charset : ISO-8859-1, ISO-8859-15 ou UTF-8 ?
- utf-8, iso-8859-1, iso-8859-15 ?
- charset=iso-8859-1 ou ...8859-15 ?
- UTF-8 ou ISO 8859-1 ?
- Interclassement pour ISO-8859-1
- Utf8 Iso et iframe
- mettre de l'iso-8859-1 sur un page en utf8
- Balise meta charset=iso-8859-1
Consultez la description détaillée des produits ou services de Google suivants : Google Site Stats
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

