PHP et strtr()

Fermé
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 - 8 juil. 2011 à 14:32
 Utilisateur anonyme - 8 juil. 2011 à 14:44
Bonjour,

Voila j'utilise la fonction strtr() pour modifier des caractères, voici mon code :

$fichier = strtr($fichier,
                        "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ",
                        "aaaaaaceeeeiiiiooooouuuuyaaaaaaceeeeiiiioooooouuuuyy");

$fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $fichier);

echo $fichier."<br/>";


Au final, pour un nom comme ceci : déclaration j'obtiens da_claration.

Pourquoi strtr ne me change pas le caractère mais me l'ajoute ???
Pourquoi est-ce un a plutôt qu'un e ???
Pourquoi ai-je un _ alors que je ne devrais pas en avoir ???

Merci d'avance ^^


A voir également:

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 juil. 2011 à 14:41
Bonjour,

Tu as très probablement un problème d'encodage.
Je dirais que ton fichier est en UTF-8, alors que ton script PHP est en ANSI.
Convertis les deux dans le même encodage (préférentiellement l'UTF-8 pour les deux), et tout devrait aller mieux.

Xavier
0
Utilisateur anonyme
8 juil. 2011 à 14:44
En effet, ça doit être ça ! J'ai encodé le script en UTF-8 et déclaré en ANSI. Résultat : dy_claration ! Essaye de convertir ton fichier en ANSI, avec Notepad++ par exemple, ou simplement avec le bloc-note Windows !
0
Utilisateur anonyme
8 juil. 2011 à 14:42
Est-ce qu'au départ, $fichier="déclaration" ? J'ai copié ton code tel quel moi ça me sort declaration, normal...
0