Comment decoder les trucs du style %u2022 ?

Bonjour,

J’utilise un script ajax et il transforme parfois les caractères “très speciaux” en choses commençant pas %u comme par exemple le caractère puce en %u2022 ou le guillemet anglais ` en %u2019
Comment decoder ces choses en PHP ?

Merci d’avance ?

Je suppose que %uXXXX = code héxa pour de l’unicode. Tu devrais chercher du côté de raw_urldecode, and co.

J’ai essayé mais ça ne fonctionne pas
Je pense que c’est le u qui n’est pas compris par la fonction

Eventuellement ça: fr3.php.net…

Moi j’avais eu affaire à des caractères notés “\u1234”
J’ai converti tout ça en entités HTML avec la fonction suivante :[quote=""]

function str__slashedUnicode2HtmlEntity($unicode) {
// Passe d’un caractère unicode noté “\uABCD” à son équivalent en entité HTML notée “&#XYZ;”
// Utilise la valeur décimale du nombre hexadécimal de la notation “\uABCD”
// Exemple avec un e accent aigu minuscule (é) : On passe de \u00e9 à é (car e9 en hexadécimal donne 233 en décimal)

$unicode_hexacode = $unicode[2] . $unicode[3] . $unicode[4] . $unicode[5];
return '&#' . base_convert($unicode_hexacode, 16, 10) . ';';

}
[/quote]
En espérant que ça puisse t’aider :slight_smile:

Merci Raynor ta fonction marche super bien.
Je l’ai couplée avec

$chg=preg_replace("#(%u[0-9]{4})#iseU","str__slashedUnicode2HtmlEntity('\\1')",$text);

Merci encore