Supprimer les accents d'une chaine en Latin1 ou UTF-8
1 réponse
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 !
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à.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
paul
In article , Olivier Miakinen <om+ wrote:
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à.
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>
:-((
In article <45a36fb2@neottia.net>,
Olivier Miakinen <om+news@miakinen.net> wrote:
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à.
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>
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à.
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>