Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/03/2011, 00h26   #1
Invité de passage
 
Inscription : mars 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 5
Points : 1
Points : 1
Par défaut Affichage de lettres accentuées

Bonjour à tous,

Je galère bcp avec les lettres accentuées.

Voilà le pb :
- pour inscrire dans la base MySQL, pas de souci
- Pour afficher les textes sur le web, pas de souci
- en revanche, quand je veux changer un champ, je le fais éditer par défaut dans un input du type :

<td><input type="text" name="adresse" size=50 value=<?php echo "'" . htmlentities($donnees[5], ENT_QUOTES) . "'" ;?></td>

Alors ça semble compliqué mais c'est le seul moyen que j'ai trouvé pour qu'il affiche tous les termes (et pas seulement le premier...) et les apostrophes.

Mais il affiche des éé par exemple pour éé !! Alors que sur la base c'est écrit correctement...

Je précise : je suis partout en utf-8 (html, bdd, éditeur). J'ai des $req=$bdd->query("SET NAMES 'utf8'") ;
partout, je galère vraiment.... J'ai regardé sur les forum mais sans résultat.

Merci bcp s'il y en a qui ont une idée...
solal31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 00h47   #2
Invité de passage
 
Inscription : mars 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 5
Points : 1
Points : 1
Par défaut Précision

Je précise en fait que les éléments d'affichage semblent contradictoires :

- soit j'utilise "html_entity_decode", alors les lettres accentuées s'affichent bien MAIS il n'affiche que le premier terme,
- soit j'utilise "htmlentities" qui affiche bien toute la chaîne mais pas les lettrs accentuées...

Y-a-t'il une instruction qui marche pour tout ??

Merci,

Citation:
Envoyé par solal31 Voir le message
Bonjour à tous,

Je galère bcp avec les lettres accentuées.

Voilà le pb :
- pour inscrire dans la base MySQL, pas de souci
- Pour afficher les textes sur le web, pas de souci
- en revanche, quand je veux changer un champ, je le fais éditer par défaut dans un input du type :

<td><input type="text" name="adresse" size=50 value=<?php echo "'" . htmlentities($donnees[5], ENT_QUOTES) . "'" ;?></td>

Alors ça semble compliqué mais c'est le seul moyen que j'ai trouvé pour qu'il affiche tous les termes (et pas seulement le premier...) et les apostrophes.

Mais il affiche des éé par exemple pour éé !! Alors que sur la base c'est écrit correctement...

Je précise : je suis partout en utf-8 (html, bdd, éditeur). J'ai des $req=$bdd->query("SET NAMES 'utf8'") ;
partout, je galère vraiment.... J'ai regardé sur les forum mais sans résultat.

Merci bcp s'il y en a qui ont une idée...
solal31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 01h51   #3
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
parce que la fonction htmlentities() prend un troisième paramètre charset qui par défaut est ISO-8859-1, précise utf-8 dans ton code :
Code :
htmlentities($donnees[5], ENT_QUOTES,'utf-8')
c'est dans la doc :
http://php.net/manual/fr/function.htmlentities.php
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 04h46   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Et puis utilises plutôt htmlspecialchars en utf-8 parce que c'est suffisant et surtout parce que tu n'auras pas besoin de spécifier le second paramètre pour indiquer l'encodage (qui est identique en ISO et en utf-8 pour cette fonction contrairement à htmlentities).
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 08h25   #5
Invité de passage
 
Inscription : mars 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 5
Points : 1
Points : 1
Citation:
Envoyé par vorace Voir le message
parce que la fonction htmlentities() prend un troisième paramètre charset qui par défaut est ISO-8859-1, précise utf-8 dans ton code :
Code :
htmlentities($donnees[5], ENT_QUOTES,'utf-8')
c'est dans la doc :
http://php.net/manual/fr/function.htmlentities.php
Salut !

Merci beaucoup ça marche enfin !!
solal31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 08h27   #6
Invité de passage
 
Inscription : mars 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 5
Points : 1
Points : 1
Citation:
Envoyé par ABCIWEB Voir le message
Et puis utilises plutôt htmlspecialchars en utf-8 parce que c'est suffisant et surtout parce que tu n'auras pas besoin de spécifier le second paramètre pour indiquer l'encodage (qui est identique en ISO et en utf-8 pour cette fonction contrairement à htmlentities).
Merci de ta réponse.

Malheureusement j'avais essayé mais cette fonction ne marche pas...

En fait cela s'arrête non pas comme je l'ai dit au premier terme mais à l'apostrophe... C'est lui qui pose problème... A moins qu'il y a une option aussi ?
solal31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 08h28   #7
Invité de passage
 
Inscription : mars 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 5
Points : 1
Points : 1
Citation:
Envoyé par solal31 Voir le message
Merci de ta réponse.

Malheureusement j'avais essayé mais cette fonction ne marche pas...

En fait cela s'arrête non pas comme je l'ai dit au premier terme mais à l'apostrophe... C'est lui qui pose problème... A moins qu'il y a une option aussi ?
Au temps pour moi, oui ça marche bien avec l'option 'ENT_QUOTES'

Merci à tous !!
solal31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h24.


 
 
 
 
Partenaires

Hébergement Web