utf-8 remplacement de caracteres.

Le
Etienne SOBOLE
Salut.

comment remplacer un caractère par un autre en utf-8?
D'une manière generale est ce que quelqu'un dispose de fonction sympathique
traitant les chaine utf-8. genre strlen fonctionnant en utf-8?

m'enfin ma question originale, qui concerne le remplacement de caractère est
simple.
j'ai des caractère d'espace 0x80 0x00
qui sont si j'ai bien compris des espaces insécables
hors mois je voudrais des 0x20 0x00
des bons vieux espaces de chez grand mère

comment je peut faire en PHP le remplacement !!!

voila
merci
Etienne
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sebastian 'CrashandDie' Lauwers
Le #723559
Etienne SOBOLE wrote:

m'enfin ma question originale, qui concerne le remplacement de caractère est
simple.
j'ai des caractère d'espace 0x80 0x00
qui sont si j'ai bien compris des espaces insécables
hors mois je voudrais des 0x20 0x00
des bons vieux espaces de chez grand mère...

[...]

comment je peut faire en PHP le remplacement !!!


Erhm... C'est sûrement super con ce que je vais proposer

<?php

$test = str_replace (chr (0x80).chr (0x00), chr (0x20).chr (0x00) , $texte);

// ou encore:

$test = str_replace (chr (0x80 0x00), chr (0x20 0x00) , $texte);

?>

voila


Voili voulou

merci


Je pense pas que ça marche, mais comme dirait l'autre: It's worth giving
it a shot...

Etienne


S.

Paul Delannoy
Le #723558
Sebastian 'CrashandDie' Lauwers a écrit:
Etienne SOBOLE wrote:



Je pense pas que ça marche, mais comme dirait l'autre: It's worth giving
it a shot...


Pas de pensée, des essais... AMHA ça doit marcher.

Etienne



S.



Olivier Miakinen
Le #723557

comment remplacer un caractère par un autre en utf-8?


Une solution du style de celle proposée par Sebastian fonctionnera, du
fait qu'une séquence d'octets représentant un caractère en utf-8 ne peut
pas se trouver dans une autre séquence. Seulement il faudrait d'abord
que ta chaîne soit vraiment en utf-8.

j'ai des caractère d'espace 0x80 0x00


Alors ce n'est pas de l'utf-8.
1) 0x80 ne se trouve jamais en début de séquence.
2) 0x00 ne se trouve dans aucune séquence (sauf tout seul,
pour représenter le caractère nul).

qui sont si j'ai bien compris des espaces insécables


Pas en utf-8 en tout cas.

[or] moi[] je voudrais des 0x20 0x00


Ce n'est pas de l'utf-8 non plus.

des bons vieux espaces de chez grand mère...


En utf-16, peut-être ? Je ne connais pas bien cet encodage.

comment je peut faire en PHP le remplacement !!!


Bon. Si c'était de l'utf-8, il faudrait remplacer 0xC2 0xA0 par 0x20,
c'est-à dire "Â " par " " (la première espace est censée être une
insécable iso-latin-1, la seconde est normale).

loufoque
Le #723282
Etienne SOBOLE a dit le 05/02/2005 à 12:13:

D'une manière generale est ce que quelqu'un dispose de fonction sympathique
traitant les chaine utf-8. genre strlen fonctionnant en utf-8?


www.php.net/mbstring
Ça a en fait très peu d'intérêt.

Olivier Miakinen
Le #725718

comment remplacer un caractère par un autre en utf-8?
[...]


Tu ne nous as pas donné la conclusion de ton problème, ni ici ni dans
l'autre groupe où tu l'avais posé (l'un des fciw*, je ne sais plus lequel).

Alors c'était quoi, finalement ?

Publicité
Poster une réponse
Anonyme