caractères spéciaux et EasyPHP 1-8 (é à è â ï )

Répondre
jackbocar
le 06/03/2005 à 11:00
jackbocar
Non,

moi, j'ai des petits losanges noir avec à l'intérieur des ? en blanc pour les é ou les è ????

Et sur mes pages c'est la même chose sans les losanges. Que se soit avec IE6 ou Firefox.

Je ne comprends pas ???

Jack Bocar
LA GLOBULE
le 06/03/2005 à 11:03
LA GLOBULE
Heu, je fais une capture avec ksnapshot, mais je suis sous linux.

Sous Windows, tu appuies sur la touche "Imprim Ecran" de ton clavier.
Tu ouvres un logiciel de dessin, tu crées un nouveau document, et tu "colles" ta capture avec un CTRL + C ou tu fais "coller" dans le menu adéquat du logiciel (cela depend du logiciel de dessin que tu utilises, mais souvent c'est le menu Edition).
jackbocar
le 06/03/2005 à 11:09
jackbocar
Donc, si je te suis, il faut que je code comme ceci :

<?php
$query = 'INSERT INTO liens (id,titre,commentaires,url) VALUES ( ""
,"'.htmlentities addslashes($_POST["titre"]).'"
,"'.htmlentities addslashes($_POST["commentaires"]).'"
,"'.htmlentities addslashes($_POST["url"]).'"
) ';
$result = mysql_query($query) or die (mysql_error());
?>


Merci de corriger si tu trouves des erreurs

Jack Bocar
LA GLOBULE
le 06/03/2005 à 11:12
LA GLOBULE
Personnellement, je suis pour des "données brutes" de traitement dans la base de données.

J'utilise le htmlentities juste avant l'affichage des données de la base sur mes pages web.
jackbocar
le 06/03/2005 à 11:17
jackbocar
Alors comme tu es un pros explique ce que tu fais "en données brutes"

Comme ceci :

while ($row = mysql_fetch_object($result)) {
$commentaires = nl2br($commentaires);
$commentaires = htmlentities($commentaires);

Jack Bocar
LA GLOBULE
le 06/03/2005 à 11:19
LA GLOBULE
Ben je stockes mes infos dans ma base, sans traitement (attention, je ne dis pas sans analyse).

Et ensuite, pour l'affichage, je fais exactement ce que tu fais, sauf qu'il faut faire le nl2br apres le htmlentities.
jackbocar
le 06/03/2005 à 11:22
jackbocar
Merci de tes conseils, donc je fais comme ceci :

while ($row = mysql_fetch_object($result)) {
$commentaires = htmlentities($commentaires);
$commentaires = nl2br($commentaires);

et plus de caractères tel ? pour é

Merci encore

J'en avais raz le bol de chager les é par des &eacute; avant d'envoyer dans la base.

Jack
LA GLOBULE
le 06/03/2005 à 11:32
LA GLOBULE
Heu ouais, mais ca ne va pas changer grand chose :)

A priori, tu as un problème de navigateur WEB qui n'arrive pas à afficher le moindre accent.
keitarosan
le 06/03/2005 à 11:33
keitarosan
héhéhé

je pense que la réponse est plutot simple, a moins que je dise une grosse betise.

Mais vérifie en quel est le format de stockage des caractère sous ton mysql.
Si c'est comme postgre, et bien c'est encoder en UNICODE (Charset=UTF-8).
Hors avant, mysql stockait en charset=iso-8859-1, donc en européen. Ce qui veut dire que quand tu met dans les balises meta le meme iso, tu n'as pas de soucis.

Hors si mysql est passé en UNICODE(norme UTF-8), et que toi tu garde la norme iso-8859-1, et bien tu as un probleme pour la restitution des caractère spéciaux.

Donc, le moyen le plus simple, est de mettre dans la balise meta la meme norme que celle de mysql

Comme ca, plus de soucis, tout le monde veras bien ta page
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
Répondre
LoadingChargement en cours