Discussion:
Virer les espace insecable en UTF8
(trop ancien pour répondre)
Etienne
2011-04-19 13:40:05 UTC
Permalink
salut.

j'aimerai savoir comment virer les caractère A0C2 (espace insécable a
priori) pour remplacer par un espace normal.

si quelqu'un pouvait me dire comment faire !
merci.

Etienne
Olivier Miakinen
2011-04-19 18:36:26 UTC
Permalink
Bonjour,
Post by Etienne
j'aimerai savoir comment virer les caractère A0C2 (espace insécable a
priori) pour remplacer par un espace normal.
Je suppose que tu veux dire C2 A0, non ?
Post by Etienne
si quelqu'un pouvait me dire comment faire !
Voici quatre méthodes avec <http://fr.php.net/str_replace>.

Fonctionne quel que soit le charset (pourvu qu'il soit compatible
avec ASCII) :
$str = str_replace("\xC2\xA0", " ", $str);

Si le fichier est en UTF-8 :
$str = str_replace("_", " ", $str);
(remplacer le « _ » par l'espace insécable)

Si le fichier est en Latin1 :
$nbsp = utf8_encode("_");
$str = str_replace($nbsp, " ", $str);
(remplacer le « _ » par l'espace insécable)

Fonctionne quel que soit le charset (pourvu qu'il soit compatible
avec ASCII) :
$nbsp = utf8_encode("\xA0");
$str = str_replace($nbsp, " ", $str);

Il existe l'équivalent avec <http://fr.php.net/preg_replace>, avec ou
sans l'option /u, mais il est inutile d'aller chercher les regexp pour
un simple remplacement de chaîne fixe.

Cordialement,
--
Olivier Miakinen
WebShaker
2011-04-19 23:45:37 UTC
Permalink
Post by Olivier Miakinen
$str = str_replace("\xC2\xA0", " ", $str);
Ah merci.
ca marche nickel.
Post by Olivier Miakinen
Fonctionne quel que soit le charset (pourvu qu'il soit compatible
$nbsp = utf8_encode("\xA0");
$str = str_replace($nbsp, " ", $str);
Alors voilà.
J'avais trouvé ce bout de code.
mais...

a0 semble être le caractère à
du coup utf8_encode("\xA0") devrait me retourner c3a0

et la je ne sais si ca vient de la libraire XML mais impossible de
parser un fichier xml avec ce caractère!!!

Bon ca n'a rien a voir avec ma précédente question, mais pourquoi ce
caractère fait il planter mon parseur XML ???

Etienne
Olivier Miakinen
2011-04-20 00:34:46 UTC
Permalink
Post by WebShaker
Post by Olivier Miakinen
$str = str_replace("\xC2\xA0", " ", $str);
Ah merci.
ca marche nickel.
Bien.
Post by WebShaker
Post by Olivier Miakinen
Fonctionne quel que soit le charset (pourvu qu'il soit compatible
$nbsp = utf8_encode("\xA0");
$str = str_replace($nbsp, " ", $str);
Alors voilà.
J'avais trouvé ce bout de code.
mais...
a0 semble être le caractère à
Gniii ? Le caractère « à » en Latin1 c'est E0. Tu ne confondrais pas
avec le caractère « á » en CP850, codage de MS-DOS ?
Post by WebShaker
du coup utf8_encode("\xA0") devrait me retourner c3a0
Non, c'est utf8_encode("\xE0") qui devrait retourner "\xC3\xA0".
Post by WebShaker
et la je ne sais si ca vient de la libraire XML mais impossible de
parser un fichier xml avec ce caractère!!!
Lequel ? Remets donc un peu d'ordre dans tes idées, ça devrait aller
mieux après... ;-)
Post by WebShaker
Bon ca n'a rien a voir avec ma précédente question, mais pourquoi ce
caractère fait il planter mon parseur XML ???
Je n'ai pas compris de quel caractère tu parles, ce qui me semble
normal puisque toi-même tu n'as pas les idées claires sur l'encodage
correspondant à tel ou tel caractère. Par exemple, si tu as du CP850
au milieu d'un texte UTF-8, il est assez normal que ça fasse planter
un parseur XML. :-D
Etienne
2011-04-20 20:53:46 UTC
Permalink
Post by Olivier Miakinen
Je n'ai pas compris de quel caractère tu parles, ce qui me semble
normal puisque toi-même tu n'as pas les idées claires sur l'encodage
correspondant à tel ou tel caractère. Par exemple, si tu as du CP850
au milieu d'un texte UTF-8, il est assez normal que ça fasse planter
un parseur XML. :-D
Bon tu n'as peut etre pas tord. C'est vrai que je galère un peu avec les
charsets dans tous les sens;

Alors voila ce que je vais faire.
je vais créer un petit fichier xml, avec le code php qui va avec pour le
parser et je mettrai tout ca en ligne.

Je reviens.

Continuer la lecture sur narkive:
Loading...