[PHP] Les accents ne sont pas gérés ! HELP

Les accents ne sont pas gérés ! HELP [PHP] - PHP - Programmation

Marsh Posté le 18-04-2003 à 09:01:24    

J'ai une base de données SQL Server
un serveur Apache et j'utilise PHP.
 
Le problème : lorsque je sors qqch de la base,
tous les accents sont virés et remplacés par des caractères bizarres (ex: é devient , et ë devient ?)
 
Comment empêcher ça ?
 
(pour l'instant j'ai bidouillé avec des str_replace mais c'est bancale :  
ça cause des problèmes ave les virgules entre autres)


Message édité par sire de Botcor le 18-04-2003 à 09:02:01

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 18-04-2003 à 09:01:24   

Reply

Marsh Posté le 18-04-2003 à 09:36:07    

personne n'a jamais eu ce genre de problème ?


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 18-04-2003 à 12:15:59    

Habituellement ça passe, mais de toute façon la solution réellement satisfaisante est de modifier ton script pour qu'il replace les caractères accentués par leurs codes html respectifs.

Reply

Marsh Posté le 18-04-2003 à 15:02:22    

Ça ne changerait rien puisque c'est à la sortie de la base que les accents se font virer...
 
Lorsque je commence à les utiliser, ils sont déjà morts...
 
Et je ne peux pas non plus les transformer directement dans la base parce que je ne suis pas le seul à pouvoir y accéder donc d'autres pourrait ne pas mettre les codes HTML d'accents.
 
Ce que je voudrais surtout savoir c'est d'où vient ce problème d'accent !...


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 18-04-2003 à 15:49:00    


et si tu utilises HTML_entities avant decrire tes donnees dans la base ?

Reply

Marsh Posté le 22-04-2003 à 16:51:25    

sire de botcor a écrit :

Ce que je voudrais surtout savoir c'est d'où vient ce problème d'accent !...

Surement un problème d'encodage des caractères.
A tout les coups, tout le monde ne lui envoit pas les caractères de la même manière et la bdd n'est pas réglé pour faire de la translation de caractère, ou alors le système détecte mal quel est l'encodage utilisé en entré.
 
Bon courage pour trouver d'où ca vient surtout si t'as pas accés aux infos de réglage de la base de donnée. ;)

Reply

Marsh Posté le 22-04-2003 à 17:13:54    

mober a écrit :

pour qu'il replace les caractères accentués par leurs codes html respectifs.


 
y a plus besoin de faire ça depuis quelques années, suffit de mettre le bon type d'encodage dans les <meta> de la page HTML


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-04-2003 à 17:20:22    

antp a écrit :


 
y a plus besoin de faire ça depuis quelques années, suffit de mettre le bon type d'encodage dans les <meta> de la page HTML

C'est www compliant ou alors c'est juste un fait du à l'amélioration progressive des navigateurs?
PS : Moi, je fais quand même des htmlentities pour raison de sécurité. ;)

Reply

Marsh Posté le 22-04-2003 à 17:26:08    

omega2 a écrit :

C'est www compliant ou alors c'est juste un fait du à l'amélioration progressive des navigateurs?


 
au moins depuis HTML4, ça passe sans problèmes dans IE4/NS4/Opera4 en tout cas
 

omega2 a écrit :


PS : Moi, je fais quand même des htmlentities pour raison de sécurité. ;)


 
ouais par sécurité tu devrais aussi envoyer les données en HTTP1 plutôt que 1.1 :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-04-2003 à 17:36:50    

antp a écrit :


 
au moins depuis HTML4, ça passe sans problèmes dans IE4/NS4/Opera4 en tout cas
 
 
 
ouais par sécurité tu devrais aussi envoyer les données en HTTP1 plutôt que 1.1 :D

Ben tu sais, au court de la première journée de test de mon chat, on m'a fait le coup de me mettre un meta refresh dans un message en exemple de comment falait faire pour rafraichir sans javascript (je débutais. :D ). Depuis, j'oublis pas ce genre de protection. ;)

Reply

Marsh Posté le 22-04-2003 à 17:36:50   

Reply

Marsh Posté le 22-04-2003 à 17:38:16    

je vois pas le rapport :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-04-2003 à 17:39:07    

boolay detected
 
http://forum.hardware.fr/forum2.php3?post=35590&cat=10


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-04-2003 à 18:14:52    

antp a écrit :

je vois pas le rapport :heink:

Maintenant que tu poses la question ... :D
En fait avant ton intervention, je savais même pas que ca fesait partie de la norme html4 le coup de mettre l'encodage dans un <meta>. Bon, faut dire, j'ai jamais trouvé la moindre doc en francais sur les metas valide sur tel ou tel navigateur (je suis tombé une fois sur la liste des meta spécifique à IE mais à l'époque, pour moi c'était pas très utile vu que je voulais garder une compabilité avec netscape et d'autres navigateurs) et encore moins sur ceux qui sont normalisé. Même dans les bouquins soit disant sérieux et complet j'ai jamais vu de liste des meta. ;)
 
Par contre, même si ta solution règle son problème au niveau de l'affichage dans le navigateur, je vois pas en quoi ca va l'aider à faire des traitements dessus au niveau de ces scripts en php. ;)

Reply

Marsh Posté le 22-04-2003 à 19:01:20    

Reply

Marsh Posté le 22-04-2003 à 19:02:54    

omega2 a écrit :


Par contre, même si ta solution règle son problème au niveau de l'affichage dans le navigateur, je vois pas en quoi ca va l'aider à faire des traitements dessus au niveau de ces scripts en php. ;)


 
C'était par rapport au post de mober
je vois pas pourquoi il faudrait convertir ses données en é etc.  
Il faudrait plutôt mettre le bon encoding.
Dans ce cas-ci, le "é" qui devient ",", ça voudrait dire que l'un utilise le jeu de caractère DOS et l'autre Windows.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-04-2003 à 19:40:22    

antp a écrit :


 
C'était par rapport au post de mober
je vois pas pourquoi il faudrait convertir ses données en é etc.  
Il faudrait plutôt mettre le bon encoding.
Dans ce cas-ci, le "é" qui devient ",", ça voudrait dire que l'un utilise le jeu de caractère DOS et l'autre Windows.

Ha ok. Mais vu que si j'ai bien compris ils lisent et écrivent tout les deux dans la base de donnée, il faudra quand même qu'il fasse une translation de caractère avant d'écrire dans la base de donnée ... a moins de réussir à faire comprendre a la base de donnée que les données provenant de la connection du script php ne sont pas dans le jeux de caractère utilisé dans le reste de la base et donc qu'il faut qu'elle fasse elle même la translation. ;)
Mais bon, ce genre de problème a terme c'est toujours chiant. Tant qu'on reste en système homogène on ce rend comptes de rien et le jour où on passe a des conections hétérogènes, tout le monde se retrouve à de voir bidouiller pour avoir les infos comme il faut.
Avec sybase, je sais qu'il y a une option à activé pour que la base prenne en compte l'info "jeux de caractère" des diférentes conections. C'est peut être pareil pour lui, mais seul un admin de base de donnée SQL Server qui accepte de ce casser le cul pendant un moment sur ce problème pourait le dire. ;)

Reply

Marsh Posté le 25-04-2003 à 14:05:48    

antp a écrit :


 
ça non plus je vois pas le rapport :heink:

:ouch:
je viens de me rendre compte que je me suis trompé de topic en postant ce lien :pfff:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-05-2003 à 11:06:53    

[:yoyoz]  
 
Quelqu'un a trouvé une solution ?
 
Je suis en train de me faire un webmail et pour certains, j'obtiens les caractères spéciaux remplacés par des codes (ex "é" devient "=E9" ).
Ca fait 2j que je cherche, je trouve pas de solution :pfff:  
 
Une idée ?


Message édité par raph77 le 01-05-2003 à 11:07:08
Reply

Marsh Posté le 02-05-2003 à 15:22:49    

Bon, au cas où ça interesse quelqu'un, ça marche en utilisant la fonction quoted_printable_decode(...) ;)

Reply

Marsh Posté le 20-06-2003 à 01:17:41    

raph77 a écrit :

Bon, au cas où ça interesse quelqu'un, ça marche en utilisant la fonction quoted_printable_decode(...) ;)


 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed