Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Virer les espace insecable en UTF8

4 réponses
Avatar
Etienne
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

4 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 19/04/2011 15:40, Etienne a écrit :

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 ?

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("xC2xA0", " ", $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
Avatar
WebShaker
Le 19/04/2011 20:36, Olivier Miakinen a écrit :
$str = str_replace("xC2xA0", " ", $str);



Ah merci.
ca marche nickel.

Fonctionne quel que soit le charset (pourvu qu'il soit compatible
avec ASCII) :
$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
Avatar
Olivier Miakinen
Le 20/04/2011 01:45, WebShaker a écrit :

$str = str_replace("xC2xA0", " ", $str);



Ah merci.
ca marche nickel.



Bien.

Fonctionne quel que soit le charset (pourvu qu'il soit compatible
avec ASCII) :
$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 ?

du coup utf8_encode("xA0") devrait me retourner c3a0



Non, c'est utf8_encode("xE0") qui devrait retourner "xC3xA0".

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... ;-)

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
Avatar
Etienne
Le 20/04/2011 02:34, Olivier Miakinen a écrit :
Le 20/04/2011 01:45, WebShaker a écrit :

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.