Disparition de caractère en PHP

Résolu/Fermé
Signaler
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
-
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
-
Bonjour,
je me tourne vers vous aujourd'hui car j'ai un problème insoluble.

Le contexte:
Un utilisateur à publié une "fiche" sur la plateforme que j'ai développé, et tous les mots ayant des lettres accentuées (é,è,à) et les cédilles (ç) enfin les caractères spéciaux de notre langue, donc tous ces lettre ont tout simplement étaient supprimé !

Effectivement dans ma BDD les caractères ne sont pas présents ! Ni même encodés ...
Je cherche une solution à ce problème.

Pour agrandir l'incompréhension du problème :
Quand je poste exactement la même "fiche" avec les même mots, et bien les caractères spéciaux sont enregistré !

J'ai essayé de reproduire la manipulation de mon utilisateur mais impossible d'avoir le même résultat.

La seule piste que j'ai trouvé c'est que cela vient du navigateur, quand pensez vous ?
Ma page à un charset en "iso-8859-1".
Pour l'enregistrement en BDD je fait un encodage (html_entities en UTF8) est-ce que cela peut poser un problème ?

Je vous remercie par avance de vos réponses.

Sincèrement,
Julien

5 réponses

Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 603
Je penche aussi pour un réglage côté navigateur, demande lui d'essayer avec différents navigateurs, et d'essayer de régler l'encodage sur le navigateur qui pose soucis.
0
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
37
Merci pour cette réponse super rapide.
Effectivement cette solution est envisageable.

mais je cherche une solution transparente pour mes utilisateurs.
As-tu une solution ?
0
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 603
Là comme ça je ne vois pas trop, si c'est le seul à rencontrer ce problème, c'est qu'il a un mauvais reglage qu'il faut réparer...
0
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
37
Oui effectivement je vais devoir corriger ça avec cette utilisateur.

Mais j'aimerais quand même trouver cette erreur.

C'est plutôt handicapant pour les utilisateur qui auraient la même configuration :\

En tous cas merci beaucoup et si tu as une suggestion je suis preneur ^^
0
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 603
tu peux essayer de déterminer à quel moment les mots "disparaissent", si c'est dans ton script php (ce dont je doute) ou si c'est au moment de l'inscription dans la table (chose plus probable)

regarde donc l'encodage de ta bade de données, peut être qu'il y a quelque chose à régler à ce niveau là...
0
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
37
Je ne pense pas que cela puisse venir de la car quand je test avec n'importe quel autre navigateur cela fonctionne !
Bien entendu j'ai que les dernière version des navigateurs ...

Mon utilisateur utilise une vieille version de IE. Je pensai que cela venait de ça ?!?!

Je vais toutes fois regarder si cela vient de sa configuration ou de ma plateforme (PHP ou SQL) ...

Si jamais tu as d'autres idées ??
0
Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
en résumé :

ta page web est en iso-8859-1

tes tables sont en latin1_swedish_ci

et tu encode tes données en utf8

c'est le merdier ... et pourquoi pas tout mettre en utf8 par exemple ?

ta page web en charset utf8

tes tables en uft8_unicode_ci

tes données, pas d'encodage a faire mais ajouter après la connexion à la base de données : SET NAMES utf8

tes pages (de code) encodé en utf8 (sans BOM)

création d'un .htaccess avec : AddDefaultCharset UTF-8
0
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
37
Oui effectivement mais c'est suite à une erreur.

Je vais laisser le charset de mes page en iso-8859-1.
Mais je vais encoder en UTF8
et les table les passer en UTF8.

Histoire qu'il y ait un peut moins le merdier dans tout ça ^^

Pense tu que mon problème insoluble puisse venir de ça ?
Perso je pense plus à une configuration foireuse ??!!??
0
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
37
Bonjour,
je viens de faire quelque tests.

Donc j'ai virtualiser XP sans appliquer aucune mise à jour et surprise c'est internet explorer qui supprime les caractère spéciaux ...

Je ne comprend pas pourquoi et cela se produit jusqu'à la version 8 je n'ai pas encore testé pour les versions supérieurs.

Avez-vous des suggestions ? Une idée sur ce dysfonctionnement ?
Je vous remercie d'avance pour l'aide :)
0
Messages postés
580
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
28 février 2013
37
C'est résolu, à l'encodage et au décodage un petit flag 'ENT_QUOTES' et un petit paramettre de filtrage 'UTF-8' et c'est réglé ^^

Merci pour le coup de main,

bonne continuation à tous
0