RegExp, UTF8, accents et métaclasses ... tout un programme
Posté : 30 oct. 2008, 13:34
Bonjour,
J'ai entrepris de passer un site en UTF8 (auparavant en ISO-8859-1). J'ai donc passé le serveur Apache, les BD MySQL, les fichiers PHP, les entêtes HTML en UTF8 et j'ai configuré l'extension mbstring de php pour traiter les chaines UTF8 de façon transparente.
Mais j'ai un problème avec la validation de mes formulaires et plus généralement avec les expressions régulières.
Voilà un exemple de mon problème.
J'ai essayé plusieurs setlocal mais auncun n'a marché :
Une idée peut être ?
J'ai entrepris de passer un site en UTF8 (auparavant en ISO-8859-1). J'ai donc passé le serveur Apache, les BD MySQL, les fichiers PHP, les entêtes HTML en UTF8 et j'ai configuré l'extension mbstring de php pour traiter les chaines UTF8 de façon transparente.
Mais j'ai un problème avec la validation de mes formulaires et plus généralement avec les expressions régulières.
Voilà un exemple de mon problème.
<?php
//En UTF-8 cet exemple retourne FALSE
$chaine="éléphant";
$regexp = "`^[\w]*$`";
if(preg_match($regexp,$chaine))
echo 'TRUE';
else
echo 'FALSE';
?>
Depuis que je suis en UTF8 la métaclasse [\w] n'accepte plus les accents.J'ai essayé plusieurs setlocal mais auncun n'a marché :
setlocale(LC_ALL, 'fr.UTF-8');
setlocale(LC_ALL, 'fr.UTF8');
setlocale(LC_ALL, 'fr_FR.UTF-8');
setlocale(LC_ALL, 'fr_FR.UTF8');
Je développe sous WampServer 2.0, Apache 2.2.6, PHP 5.2.5, MySQL 5.0.45.Une idée peut être ?