Dans l'un de mes scripts, j'ai besoin (entre autres traitements) de supprimer les accents. Je crois que je rencontre un problème entre :
* l'encodage de travail de la fonction PHP strtr()
* l'encodage de mes données (ISO-8859-1 provenant d'une base de données)
* l'encodage du fichier PHP (UTF-8).

N'étant pas encore parfaitement familier avec toutes ces notions, j'aimerais savoir s'il y a un moyen universel de repérer, par exemple, la lettre é.
Ou mieux encore, si vous connaissez une fonction qui puisse réaliser cet enlevage d'accents.

A votre bon coeur, m'dame.
Si ton fichier php est encodé en utf-8, alors tout caractère non-ascii présent dans le fichier est encodé sur deux octets ou plus et n’a donc pas la même représentation binaire qu’en iso-8859-1.

Tu peux contourner le problème en indiquant le "é" avec sa valeur héxadécimale dans l’encodage ISO-8859-1.

$str = str_replace("\xe9", "e", $str);

Donc les lettres "e" accentuées, tu pourrais faire par exemple:

$str = preg_replace('/[\xe8-\xeb]/', 'e', $str); // passe les "è", "é", "ê" et "ë" en "e"


même principe pour les autres voyelles. Tu peux trouver les valeurs héxadécimales de ces caractères en iso-8859-1 là par exemple:
http://www.miakinen.net/vrac/codeset?set=isolatin1
Modifié par Bobe (09 Aug 2005 - 17:22)
Et bien finalement, j'ai pu trouvé une solution.
Plutôt que de passer par les codes caractères qui sont assez peu "maintenables", je transforme la chaine avec htmlentities, puis je supprime les acute, cedil, etc etc. Ca à l'air de très bien marcher, quel que soit l'encodage. Et surtout, ça ne dépend pas de l'encodage du fichier PHP.

Merci Bobe pour ton début d'aide.