[Résolu] UTF-8 et données POST / GET

WRInaute discret
Bonjour,

je suis en train de construire un site multilingue FR/EN/RU et j'éprouve de nombreuses difficulté avec l'encodage des caractères en UTF-8.

Je crois avoir fait toutes les étapes nécéssaire à l'utilisation de l'UTF-8 :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> dans la page
header('Content-type: text/html; charset=UTF-8'); dans le code PHP
toutes les tables SQL sont en utf8_general_ci et SET NAMES 'UTF8' est envoyé à chaque connexion au serveur SQL.

Mes symptomes :
- les données HTML (provenant de mes lignes de code au format txt sont enregistrées en UTF8) apparaissent correctement.
- les chaines de caractères PHP provenant des fichiers de traduction sont aussi affichées correctement.
- les données issues des tables MySQL sont aussi affichées correctement
- mais il me reste un seul souci, les informations récupérés par les formulaires sur mon site ne sont pas recueillies correctement par PHP (si je fait un echo des données $_POST je n'ai pas les bons caractères)

comment régler ce problème ?

merci
 
WRInaute discret
aucun résultat non plus , c'est d'ailleurs ce qui a motivé mon message
Soit Dédé => D�d�
avec utf8_encode : Dã©dã©
avec utf8_decode : D
 
WRInaute discret
et bien sur IE7 et FF2 c'est presque la meme chose :

IE7 : LàLà => decode : L?? ou encode : Lã lã ou rien : L
 
WRInaute impliqué
Si tu ouvres ta page de formulaire avec Notepad et que tu fais enregistrer sous, dans le champ encodage, tu as UTF8 ou AINSI ?

A+
 
WRInaute discret
Arf, je viens de trouver la fonction en cause, j'utilise une classe pour l'affichage qui utilise les fonctions strtolower et strtoupper qui ne sont apparemment pas compatibles avec l'UTF8 et d'après cette page http://bugs.php.net/bug.php?id=19257 je dois passser par : mb_convert_case($str, MB_CASE_UPPER, "utf-8"), je vais tester tout ça mais ça me semble être résolu (enfin)

Merci quand même.
 
Discussions similaires
Haut