begin process at 2010 02 10 08:00:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

PHP caractères accentués


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP caractères accentués

mardi 14 octobre 2008 à 21:45:02 | PHP caractères accentués

gmarie08

Bonsoir,

J'ai un formulaire qui me permet de saisir (entre autre un prénom).
Aujourd'hui, j'ai eu le cas d'un "rené".
Ce caractère accentué me pourrit la vie car il n'est pas reconnu dans mes routines. PHP me dit que la longueur de ma chaîne est  5 ???
Si je teste caractère par caractère j'obtiens des caractères qui ne s'affichent pas...

Voici ma function :
function correc ($c)
{
   $c = ereg_replace("[áåâäàã]","a",$c);
   $c = ereg_replace("ç","c",$c);
   $c = ereg_replace("[êéèë]","e",$c);
   $c = ereg_replace("[íîïì]","i",$c);
   $c = ereg_replace("[óôöòõ]","o",$c);
   $c = ereg_replace("[ûüùú]","u",$c);
   $c = ereg_replace("ñ","n",$c);
   $c = ereg_replace("[ÿý]","y",$c);
   $c = ereg_replace("[ÁÅÂÄÀÃ]","A",$c);
   $c = ereg_replace("Ç","C",$c);
   $c = ereg_replace("[ÊÉÈË]","E",$c);
   $c = ereg_replace("[ÍÎÏÌ]","I",$c);
   $c = ereg_replace("[ÓÔÖÒÕ]","O",$c);
   $c = ereg_replace("[ÛÜÙÚ]","U",$c);
   $c = ereg_replace("Ñ","N",$c);
   $c = ereg_replace("Ý","Y",$c);
   return $c;
}

Voici l'appel à la function :

$chain2 = correc ($chaine);

Avant j'ai "rené", après j'ai "renae"...

J'ai essayé un tas de méthodes et aucune n'a solutionné mon problème.
Pouvez-vous m'aider ?
Merci par avance

Amateur éclairé
mardi 14 octobre 2008 à 22:53:59 | Re : PHP caractères accentués

Bling 182

T'as essayé la méthode d'envoyer les bon headers et mettre les bons metas ?

http-equiv, content-type et encoding a tout hasard.

--
Développeur web freelance - Bling182 Dev : http://www.bling182.fr - http://freelancedev.ovh.org
mardi 14 octobre 2008 à 23:05:17 | Re : PHP caractères accentués

gmarie08

Merci de votre réponse,

Voici mes header et meta, je les crois corrects !

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " [ Lien ]">
<html  xml:lang="fr" lang="fr" xmlns=" [ Lien ]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

Amateur éclairé
mardi 14 octobre 2008 à 23:08:55 | Re : PHP caractères accentués

Bling 182

il est bon aussi généralement d'envoyer un
header('Content-type:text/html;encoding=iso-8859-1');

Mais bon, en iso-8859-1, il n'y a pas d'accents... il faut prendre 15, ou alors utf-8

--
Développeur web freelance - Bling182 Dev : http://www.bling182.fr - http://freelancedev.ovh.org
mardi 14 octobre 2008 à 23:23:02 | Re : PHP caractères accentués

gmarie08

J'ai remplacé ISO-8859-1 par UTF-8 : le résultat est le même

Amateur éclairé
jeudi 16 octobre 2008 à 11:14:02 | Re : PHP caractères accentués

jadu

Quelle version de PHP ?

moi je n'ai pas ce type de souci avec mes formulaires ! mais je compâti !!! et ma foi cela peut m'arriver, voilà pourquopi je pose la question !
merci

Prenez bien soin de vous.

jeudi 16 octobre 2008 à 12:11:18 | Re : PHP caractères accentués

gmarie08

Je possède PHP 5.2.6 actuellement... En fait ce que je voudrais c'est que mes caractères accentués soient systématiquement remplacés par des caractères non accentués, c'est tout !
Merci de votre obligeance

Amateur éclairé
jeudi 16 octobre 2008 à 18:36:06 | Re : PHP caractères accentués

Ordinastie

Bonjour,

Un caractère qui se transforme en deux est toujours symptomatique d'une conversion en UTF-8 non gérée. Avant de passer ton champs à ta fonction, fais la passer par la fonction utf8_decode(). Je pense que ça réglera ton problème.

Aussi,  je te proposerai ça comme fonction, je pense que c'est plus propre ;)

function

Correct($str)
{
      $b = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ';
      $r = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn';
      return
strtr ( $str , $b , $r );
}

Ordinastie.
jeudi 16 octobre 2008 à 19:14:21 | Re : PHP caractères accentués

gmarie08

Merci beaucoup Ordinastie,

J'ai réalisé la manip'.
Il y a une amélioration car on passe de 2 caractères à 1 mais le caractère transformé est = ? ... et toujours pas affichable !
Ca avance
Amicalement,

Amateur éclairé


Cette discussion est classée dans : php, caractère, replace, ereg, caractères


Répondre à ce message

Sujets en rapport avec ce message

Mini Pb avec ereg_replace() [ par nicolas66 ] <a href="Bonjour @ tous les programmeurs : br Toujours pr mon forum, jessaye de mettre en place des boutons js qui font saisir à l utilisateur url et ereg_replace [ par bebeArnaud ] je cherche à remplacer plusieurs mots par des balises ( input type=texte );mais je me heurte à un problème : la fonction ereg_replace utilisée plusieu forme ereg, eregi, ereg_replace, eregi_replace [ par apz ] salut,j'aimerais bien comprendre les expressions regulieres (ereg, ereg_replace, eregi, eregi_replace).j'ai lu la documentation et voila ce que j'ai c Prob avec les caractères spéciaux + php [ par Gulius ] Voila en fait j´ai remarqué que bcp de caractères spéciaux ne peuvent pas être insérés tel quel dans une base de donnée. Il faut donc passé par des sc Unicode ? [ par GRenard ] YoComme tout est dans le titre, je vais rajouter quand même des précisions... Ok je connais le site officiel, mais il n'y aurais pas un moyen rapide l supprimer des <P> dans une base [ par cacoun ] Salut à tous,J'utilise rich text editor qui me permet de mettre un texte dans une base de données.Or et à l'inverse de ce forum, quand j'appuie sur la Chaine de caractères [ par stailer ] Bonjour,J'ai une chaine de caractère dans une variable qui se finit toujours par une virgule... c'est voulu.Mais y a un moment ou j'aimerais l'enlever preg_replace pour chaine de code php [ par JoJo738 ] php javascript [ par Zebra1928 ] bonjour à tous,je developpe actuellement en php, j'ai un problème consernant le caractère apostrophe.quand je remplie un formulaire, j'envoie l'envoie Probleme d'update avec easyphp [ par SlunBreak ] bonjour a tous, mon probleme est le suivant : quand je fais un update avec ce code ci :mysql_query(" UPDATE `carte` SET `0`=`".$Entree."` WHERE `pos_X


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales