Enlever les accents d'une chaine

19 messages · 8 vues

Re: Enlever les accents d'une chaine

Code: Tout sélectionner » lun. 23 juin 2008 16:33 #4427

J'ai mis ça, et ça foire :

Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<title>Document sans nom</title>
</head>

<body>
<?php
echo utf8_decode(strtr("déélé","ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ","AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy"));
?>
</body>
</html>
Membre
Messages : 22
Inscription : 19 mai 2008

Re: Enlever les accents d'une chaine

Dino » lun. 23 juin 2008 16:55 #4438

Quel est l'encodage de ce fichier ?
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Enlever les accents d'une chaine

Code: Tout sélectionner » lun. 23 juin 2008 19:29 #4463

Hmm.. le utf8_decode ne devrait pas plutot être utilisé comme ceci ?
Code: Tout sélectionner
strtr(utf8_decode("déélé"),"ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ","AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy")

Pas testé, mais ça me parait évident.
Membre
Messages : 22
Inscription : 19 mai 2008

Re: Enlever les accents d'une chaine

ZioupiX » mer. 25 juin 2008 00:19 #4470

Même comme ça, ça ne marche pas.
Membre
Messages : 214
Inscription : 25 mai 2008

Re: Enlever les accents d'une chaine

Dino » mer. 25 juin 2008 10:09 #4615

ZioupiX a écrit:Même comme ça, ça ne marche pas.


Oui normal, mais déjà il faut utiliser utf8_decode() UNIQUEMENT si ton fichier PHP est encodé en UTF8.
Si effectivement ton source est en UTF8 il faut utiliser des fonctions spéciales, c'est pour ça que je t'ai demandé ton encodage.
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Enlever les accents d'une chaine

Code: Tout sélectionner » sam. 28 juin 2008 23:45 #4623

ZioupiX a écrit:J'ai mis ça, et ça foire :

Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<title>Document sans nom</title>
</head>

<body>
<?php
echo utf8_decode(strtr("déélé","ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ","AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy"));
?>
</body>
</html>


Dino, le fichier est en "iso-8859-15" (ce qui est donc incohérent avec le utf8_decode).
Le fichier est donc encodé en iso
Membre
Messages : 22
Inscription : 19 mai 2008

Re: Enlever les accents d'une chaine

Code: Tout sélectionner » dim. 29 juin 2008 00:12 #4638

Je ne sais pas pourquoi la fonction strtr ne fonctionne pas comme il faut chez toi.. mais bon.
Et ça ?
Code: Tout sélectionner
$accent = array("é","è");
$noaccent = array("e","e");
return str_replace($accent,$noaccent,$chaine);

Ca fait un peu lourd.. mais en attendant de trouver pourquoi les accents ne partent pas.. c'est toujours mieux que rien.
Membre
Messages : 22
Inscription : 19 mai 2008

Re: Enlever les accents d'une chaine

ZioupiX » dim. 29 juin 2008 01:50 #4641

Ca marche !
Je m'en fous si c'est lourd !

Thx thx thx thx.
Membre
Messages : 214
Inscription : 25 mai 2008

Re: Enlever les accents d'une chaine

Code: Tout sélectionner » dim. 29 juin 2008 02:28 #8887

Dans ce cas, préfère ça :
Code: Tout sélectionner
$accent = str_split("ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ");
$noaccent = str_split("AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy");
return str_replace($accent,$noaccent,$chaine);

Désolé de ne pas y avoir pensé plutôt... c'est un peu moins chiant pour rajouter des lettres, même si y'a déjà quasiment tout..
Membre
Messages : 22
Inscription : 19 mai 2008