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

utf-8 remplacement de caracteres.

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

5 réponses

Avatar
Sebastian 'CrashandDie' Lauwers
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.

Avatar
Paul Delannoy
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.



Avatar
Olivier Miakinen

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

Avatar
loufoque
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.

Avatar
Olivier Miakinen

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 ?