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

Résolu
Mrrraou Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -  
Mrrraou Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   281
 
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   Statut Membre Dernière intervention   4
 
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