Discussion:
Supprimer les accents d'une chaine en Latin1 ou UTF-8
(trop ancien pour répondre)
Olivier Miakinen
2007-01-09 10:57:40 UTC
Permalink
Bonjour,

Je lance un nouveau fil pour que cet article ne soit pas noyé dans une
longue enfilade, mais ceci est essentiellement une réponse à Paul Sellis
qui cherchait à remplacer des caractères accentués en UTF-8 par leurs
équivalents non accentués.

J'étais en train de chercher une solution consistant à transformer sa
chaîne en Latin1 au risque de perdre des caractères, avant de faire un
preg_replace ou (mieux) strtr, et j'ai relu la doc de la fonction iconv
lorsque j'ai vu... le paramètre TRANSLIT qui est censé tout faire tout
seul comme un grand !

Donc, à partir d'UTF-8 :
$chaine_ascii = iconv("UTF-8", "ASCII//TRANSLIT", $chaine_utf8);

À partir d'ISO-8859-1 :
$chaine_ascii = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $chaine_latin1);

Ai-je besoin de détailler pour d'autres charsets ?
--> À essayer de toute urgence, mais une rapide recherche via Google
--> indique que je ne suis pas le premier à y avoir pensé, loin de là.
--
Olivier Miakinen
paul
2007-01-09 15:07:59 UTC
Permalink
Post by Olivier Miakinen
Bonjour,
Je lance un nouveau fil pour que cet article ne soit pas noyé dans une
longue enfilade, mais ceci est essentiellement une réponse à Paul Sellis
qui cherchait à remplacer des caractères accentués en UTF-8 par leurs
équivalents non accentués.
J'étais en train de chercher une solution consistant à transformer sa
chaîne en Latin1 au risque de perdre des caractères, avant de faire un
preg_replace ou (mieux) strtr, et j'ai relu la doc de la fonction iconv
lorsque j'ai vu... le paramètre TRANSLIT qui est censé tout faire tout
seul comme un grand !
$chaine_ascii = iconv("UTF-8", "ASCII//TRANSLIT", $chaine_utf8);
$chaine_ascii = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $chaine_latin1);
Ai-je besoin de détailler pour d'autres charsets ?
--> À essayer de toute urgence, mais une rapide recherche via Google
--> indique que je ne suis pas le premier à y avoir pensé, loin de là.
Argh... il semble que je ne puisse pas profiter de tes recherches.
J'obtiens toujours :
Fatal error: Call to undefined function: iconv() in
/home.2/v/e/u/veulette/www/upload.php on line 21

je suis chez OVH avec un hébergement mutualisé configuré avec PHP en
version 4.4.4. et je ne vois pas iconv() dans les Registered Stream
Filters.
Alors qu'il figure dans d'autres configs :
<http://90plan.ovh.net/test.php5>

:-((

Continuer la lecture sur narkive:
Loading...