Problème d'accents

Résolu
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 - 16 nov. 2011 à 17:33
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 17 nov. 2011 à 12:30
Tcho tout l'monde!

C'est la 1ère fois que je me prends la tête avec des problèmes d'accents, et je ne comprends pas si ca vient de mon en-tête ou le paramètre charset ou si ma syntaxe php n'est pas juste..

pour l'en-tête de mes pages web je met:
<!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" xml:lang="fr" lang="fr">


je ne précise aucun charset (j'ai essayé:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
ou
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

mais mon problème reste le même)

et comme code d'essai:
<?php
$addr = 'Aà';

$addr = strtolower($addr); //converti en minuscule
echo 'voici $addr en minuscule: '.$addr.'
'; //affiche: aà

$addr = strtr($addr, "äàåö", "aaao"); //supprimer les accents
echo 'voici $addr sans accents: '.$addr.'
'; //affiche: aao!!
?>


Ca m'affiche: aao
Quelqu'un voit ce que je ne voit pas? Merci d'avance!

3 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
16 nov. 2011 à 19:46
Salut,

Tu as mal utilisé la fonction strtr(). Tu devrais faire ceci à la place :
$addr strtr($addr, array('ä'> 'a',
                           'à' => 'a',
                           'å' => 'a',
                           'ö' => 'o'
                           )
              );


Mais pour retirer els accents je te recommande de ne pas faire comme ça. À la place lis donc l'article suivant : PHP : Nettoyer des accents simplement avec Iconv.
3
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 3
17 nov. 2011 à 12:26
Excellent! tout simplement excellent

je remets ton code là pour ceux qui ont la flemme de cliquer sur ton lien, car il gagne vraiment à être connu!
//nettoyer les accents:
setlocale(LC_ALL,'fr_FR.UTF-8');
$addr=iconv("UTF-8","ASCII//TRANSLIT",$addr);


Merci bcp!! A++
3
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
17 nov. 2011 à 12:30
je remets ton code là

Ce n'est pas mon code. Le lien que j'ai mis n'était pas vers mon blog mais vers celui d'un ami.
0
Rejoignez-nous