![]() |
Problème d'encodage des caractères dans un formulaire et une base SQL
|
Thread Tools | Display Modes |
#1
|
||||
|
||||
Problème d'encodage des caractères dans un formulaire et une base SQL
Bonjour à tous,
Je fais un formulaire une zone de texte. Lorsque l'utilisateur le soumet, le texte est stocké dans une base de données MySQL. Dans les meta de ma page, je déclare le charset comme étant ISO-8859-15. La situation : - Sur les pages persos de Free, le formulaire est encodé en 'ISO-8859-1' - Chez moi, en correspondance avec la configuration par défaut d'apache2 sous debian, le formulaire est encondé en 'UTF-8' Où que je sois, je souhaite convertir les caractères accentués en entités HTML avant de les stocker dans la base de données. J'utilise donc la fonction "htmlentities()" de PHP. Problème : - Par défaut, cette fonction attend du 'ISO-8859-1'. Ce qui a pour résultat, par exemple, de convertir un 'à' en 'Ã '. Donc à la récupération du texte de la base, je n'ai plus trop mon 'à' tant espéré... Vous allez me dire : "htmlentities() prend en paramètre le charset qu'on veut !" J'y répond : "Oui, d'accord, mais selon l'hébergement le charset utilisé pour encoder le texte du formulaire est différent..." J'ai donc pour idée de récupérer le charset utilisé et adapter l'appel de la fonction htmlentities()... Mais comment ? Le but de cette manipulation est de récupérer un texte propre lorsque l'on consulte la base de données. C'est à dire du texte dont tous les caractères spéciaux ont leur équivalent HTML afin d'avoir un affichage correct sur la page... Si vous avez des idées... Je suis preneur ![]() Je ne m'étais jamais rendu compte de ce problème parce qu'avant l'apache chez moi était en 'ISO-8859-1', donc dans la base je mettais le 'à' sans le convertir, et je le récupérais simplement... Le premier qui dit que j'ai de drôles de problèmes, qu'il aille se cacher ! J'y suis pour rien cette fois :rolleyes: ![]() Merci d'avance ![]()
__________________
http://max.skyrock.com/ |
#2
|
||||
|
||||
J'ai pas tout suivi mais j'ai pas trop compris l'intérêt d'encoder en ISO-8859-15, étant donné que les caractères français sont tous contenus dans ISO-8859-1 et tous les caractères imaginables sont codés dans UTF-8 ^^
__________________
[01mai2004@11:23:54] <@Kaspof> je garderais toujours un souvenir impérissable de toi LeMoi|Vacances Ne soyez pas un boulet ! |
#3
|
||||
|
||||
Là n'est justement pas le problème
![]() Je me fiche bien d'en quoi va être encodé ce qu'un visiteur fout dans le formulaire... Malheureusement si je veux une solution qui plaise à tout le monde lors de la récupération du texte, faut que je convertisse les caractères accentués (par exemple), et pour ça il faut le charset :/
__________________
http://max.skyrock.com/ |
#4
|
||||
|
||||
Tente les fonctions getallheaders et apache_getenv pour voir si elles ne contiennent pas l'encodage ...
__________________
Eh y'a une grenouill' sur le bureau !!! ... non Gaston y'a pas d'grenouille sur le bureau Eh y'a un gorille devant la porte !!! ... non Gaston y'a pas de gorille devant la porte Weua y'a un p'tit oiseau sur la table !!! ... non Gaston |
#5
|
||||
|
||||
Il est en général recommandé de ne pas stocker en base des caractères HTMLisés, mais plutôt du latin-1, voire du utf-8 (très mal géré par PHP je le rappelle) ; tu peux faire la HTMLisation à l'affichage. En gros, tu forces l'encodage de ta page avec les balises META, et tu fais une bête insertion SQL. Le texte inséré sera alors (normalement) encodé en accord avec l'interclassement par défaut de MySQL (en général latin1_swedish_ci).
Maintenant si tu tiens vraiment à jouer avec de l'encodage de caractères, je te conseille l'extension mbstring, et notamment les fonctions mb_convert_encoding et mb_detect_encoding. Mais tout ceci dépend toujours de l'interclassement MySQL (depuis la version 4.1). |
#6
|
||||
|
||||
Hmmm, ok, donc :
- Je force l'encodage de la page avec la balise suivante : Code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> PHP Code:
PHP Code:
![]()
__________________
http://max.skyrock.com/ |
![]() |
Bookmarks |
«
Previous Thread
|
Next Thread
»
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Cours de français | Benjy | Discussions sur le site et/ou le forum | 47 | 01-05-2006 14:47 |
Petit probléme avec outlook express !!! | Alexlesioux | Internet, Réseaux et Sécurité | 11 | 31-08-2004 07:16 |
Comparatif des gestionnaires de téléchargement | Kaspof | Articles | 106 | 27-02-2004 15:03 |
Probléme de lenteurs... | chalouf | Discussions sur le site et/ou le forum | 11 | 22-01-2003 19:37 |
Probleme site!! | chalouf | Discussions sur le site et/ou le forum | 4 | 21-10-2002 21:06 |
All times are GMT +2. The time now is 01:06.
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.