begin process at 2012 02 13 22:16:31
  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

remplacer ereg_replace par preg_replace [ par Krasha ] Bonjour à tous, J'essaie actuellement d'intégrer un petit module de sondage sur un site et je me retrouve confronté à une petite erreur que je n'arr Transformation chaine de caractère. [ par fritz931 ] Bonjour tout le monde, J'ai un soucis pour transformer une chaine de caractère qui me servira à alimenter Highcharts. En gros je récupère mon array so Supprimer en fonction d'une class [ par 64nemesis ] Bonjour,Voilà je cherche à supprimer tous les appels xxxxxxxxxxxxxxxxxxxxxx dans $var Peut importe ce qu'il y a  en xxxxxxxxxxxxxxxxxxxxxxxx, cela pe utilisation de ereg_replace php5 [ par NINI49 ] Bonjour, Ce code marchait sous PHP4 Il supprimait tout les liens d'une page récupérée sur un site de résultat de sport (basketfrance.fr en l'occurence PHP Recherche chaîne de caractère [ par regisgb17 ] Bonjour, Sur mon site www.alpesfaune.fr j'ai créé une recherche de photos. J'utilise en php la fonction eregi() qui recherche si une chaîne de car Fonction modification chaine de caractère php [ par ccpu ] Bonjour, Je souhaiterais savoir si avec la fonction str_replace ou autre fonction, on peut remplacer une chaine de caractère mais deux fois. Je vous str_replace qui ne fonctionne pas, HELP ME PLEASE [ par flasher_13 ] Bonjour à tous, je suis débutant et je bloque sur une petite bétise. Voici le problème: J'ai une page index.php voici le code: [code=php] include('s Comment affecter un texte issu de MySQL dans un objet MEMO avec PHP ? [ par bluemandfr ] Bonjour à tous. Voici mon problème : dans une table, j'ai un champs appelé Texte, qui contient du HTML (cela inclue donc des balises mais aussi du te ereg_replace et expression réguliére [ par Valentino ] Bonjour, Je souhaite enlever tout ce qui ce trouve entre crochets [] (inclut). Voici mon problème : $chaine="blabla blabla[truc truc] machin machin pb ereg replace [ par laraison ] Bonjour, j'ai un problème avec ces lignes : $titre=eregi_replace('.mp3','',$titre); $titre=eregi_replace('^ ','',$titre); $titre = ereg_replace("_","


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,529 sec (3)

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