PHP : textarea et encodage utf8

Résolu
dimi3 Messages postés 278 Statut Membre -  
CH4NCE Messages postés 619 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Mon formulaire contient un textarea. Lorsque je le soumets par le bouton "submit", il appelle un fichier php qui va enregistrer le contenu de ce textarea dans un fichier texte. L'utilisateur qui entre ses données dans le textarea doit utiliser des caract?ères exotiques. J'ai donc encodé ma page en utf8. Les contenus des input=text de mon formulaire s'enregistrent correctement mais pas le contenu de l'input=textarea.
Comment on peut gérer ce problème ?

Je vous remercie de votre aide.

10 réponses

  1. dimi3 Messages postés 278 Statut Membre 20
     
    Je ne l'ai pas résolu... Mais j'ai résolu la question en supprimant mon textarea !!!
    1
  2. Utilisateur anonyme
     
    tu as essayé avec la fonction utf8_encode ?
    0
    1. Utilisateur anonyme
       
      et utf8_decode pour l'opération inverse ;)
      0
  3. dimi3 Messages postés 278 Statut Membre 20
     
    Oui, j'ai essayé, bien sûr. Mais dans mon cas, ça ne s'avère pas utile. En effet, le texte entré dans l'input text passe bien, sans besoin de utf8_encode. Je crois que le textarea pose problème. Une recherche sur google me montre que bien des gens ont du mal à gérer l'encodage pour les textes entrés dans un textarea.
    0
  4. CH4NCE Messages postés 619 Date d'inscription   Statut Membre Dernière intervention   732
     
    Si tes fichiers formulaire et texte sont en utf8 et que tu as des soucis, peut-être faut-il regarder l'encodage utilisé par le serveur php. Ou peut-être apache.
    0
    1. dimi3 Messages postés 278 Statut Membre 20
       
      Le serveur ne me semble pas y être pour quelque chose du fait que les contenus des input=text sont enregistrés avec les bons caractères.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    tu as précisé le jeu de caractère dans la section <head> de ton script?

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    0
    1. Utilisateur anonyme
       
      et aussi la fonction htmlspecialchars( $text, ENT_COMPAT, "UTF-8") pour l'affichage.
      ça marche pour certaines personnes
      1
    2. dimi3 Messages postés 278 Statut Membre 20
       
      Oui je l'ai fait.
      0
    3. dimi3 Messages postés 278 Statut Membre 20
       
      htmlspecialchars( $text, ENT_COMPAT, "UTF-8") ne m'a pas résolu le problème.
      0
  7. CH4NCE Messages postés 619 Date d'inscription   Statut Membre Dernière intervention   732
     
    Remplace
    strpos, strlen, strpos, strtoupper, strtolower, split, substr
    par
    mb_strpos, mb_strlen, mb_strpos, mb_strtoupper, mb_strtolower, mb_split, mb_substr
    0
  8. dimi3 Messages postés 278 Statut Membre 20
     
    Merci... Je vais tester tout ça
    0
  9. sahuni
     
    Salut,
    comment as-tu résolu ton problème?
    0
  10. CH4NCE Messages postés 619 Date d'inscription   Statut Membre Dernière intervention   732
     
    J'avais un soucis, ça marchait sur mon serveur local de developpement mais pas sur le serveur en production.
    $search = télé
    mb_strtolower($search)=t?l?
    j'ai trouvé mb_strtolower($search, 'UTF-8')=télé

    C'est casse-pied ces problèmes d'encodage. On choisi utf8 pour pas avoir de soucis de compatibilité et voilà....

    c'est dur a faire une signature ;)
    0
    1. CH4NCE Messages postés 619 Date d'inscription   Statut Membre Dernière intervention   732
       
      même chose pour
      $debut=mb_strtoupper($sup_accent, 'UTF-8');

      $nbe=mb_strwidth($string, "UTF-8");

      $fin=mb_substr($string,1,$nbe, "UTF-8");
      0
  11. dimi3 Messages postés 278 Statut Membre 20
     
    Qu'est-ce que ce fichier lib/lib.php ? Où le trouve-t-on ?
    -1