Remplacement des caractères accentués en non accentués

Résolu/Fermé
Mrrraou Messages postés 68 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 5 mars 2014 - Modifié par Mrrraou le 4/03/2014 à 22:28
Mrrraou Messages postés 68 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 5 mars 2014 - 5 mars 2014 à 10:38
Bonjour,
je souhaite convertir mes caractères accentués Unicode en caractères non accentués, j'ai essayé plusieurs snippets mais cela ne fonctionne pas, comme celui ci:
strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY')

La chaîne que je veux convertir est reçue d'une API en JSON.
Comment puis-je résoudre mon problème ?
Merci d'avance pour votre aide.
A voir également:

1 réponse

flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 281
5 mars 2014 à 10:32
Salut,

Il faut que tu t'assures que ton script en lui-même et la chaine que tu reçois sont encodés avec le même charset. Si ce n'est pas le cas il faut alors, avant d'appliquer ton remplacement de caractères, que tu encodes la chaine reçue dans le charset de ton script.
0
Mrrraou Messages postés 68 Date d'inscription mercredi 12 février 2014 Statut Membre Dernière intervention 5 mars 2014 4
5 mars 2014 à 10:38
Bonjour, ils sont tous les deux en UTF-8 (json_decode) mais cela ne fonctionne pas; j'ai utilisé ceci à la place pour retirer les accents:
function wd_remove_accents($str, $charset='utf-8')
			{
				$str = htmlentities($str, ENT_NOQUOTES, $charset);
				
				$str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
				$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
				$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
				
				return $str;
			}

Merci quand même pour votre réponse. (j'avais mis mon topic en résolu, mais apparemment ça n'a pas fonctionné.)
0