PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 09-08-2009 23:56:21

Ralph303
Membre
Lieu : St-Cyr l'Ecole
Inscription : 30-05-2009
Messages : 98
Site Web

Pb de codage des caractères accentués

Bonjour !

Je développe mon site sous windows XP avec EasyPHP 2.0b1.
J'édite mes requètes SQL avec Dreamweaver CS3.
Mon hébergeur utilise utf8_general_ci comme interclassement. (C'est ce qu'il me dit...).

Le pb, c'est que les caractères accentués ne s'affichent pas bien.

Pouvez vous m'aider ?
Merci d'avance.

Ralph303

Hors ligne

#2 10-08-2009 11:52:24

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : Pb de codage des caractères accentués

Bonjour,

j'ai eu plein de problème avec ça aussi :S

Il faut que tu vérifies l'encodage de tes pages (entete), l'encodage utilisé par PHP, l'encodage utilisé par Mysql...

J'au toujours beaucoup de mal, alors je te donne juste ces pistes...

Hors ligne

#3 10-08-2009 19:01:45

Ralph303
Membre
Lieu : St-Cyr l'Ecole
Inscription : 30-05-2009
Messages : 98
Site Web

Re : Pb de codage des caractères accentués

Merci pour ces pistes, en tous cas...

L'encodage de mysql est utf8, de même que celui précisé dans l'en-tête de mon fichier style.css.
Par contre, celui de PHP est iso-8859-1...
Je vais essayer de mettre utf8 à la place.

Ralph303

Dernière modification par Ralph303 (10-08-2009 19:02:32)

Hors ligne

#4 11-08-2009 21:04:42

Ralph303
Membre
Lieu : St-Cyr l'Ecole
Inscription : 30-05-2009
Messages : 98
Site Web

Re : Pb de codage des caractères accentués

Salut !

J'ai donc essayé de mettre utf8 comme charset dans l'en-tête de mes scripts PHP mais ça n'a rien changé.

Je m'y attendais car c'est au niveau de MySQL que ça affiche mal les caractères accentués, lorsque j'affiche le contenu des tables SQL dans mon interface phpMyAdmin (ou même sur mon site).

C'est donc qu'ils sont mal encodés d'entrée lorsque je crée mes tables.

J'en viens à penser qu'il faut que je change le charset de ma base de donnée qui est par défaut utf8_general_ci.

Mon pb, c'est qu'il m'en propose plein ! Je ne sais pas lequel utiliser.
Et il n'y en a aucun qui s'appelle "french" qq chose...
Tout au mieux, il y a "latin" qq chose...
(Pourtant il y a "spanish").

Je vais donc essayer avec un charset latin qui, il me semble, doit accepter les caractères accentués.

Sinon, si vous avez une idée, merci de bien vouloir m'en parler...

Ralph303

Hors ligne

#5 11-08-2009 21:30:25

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : Pb de codage des caractères accentués

On m'avait dit de faire

<?php
$db = mysql_connect('localhost', '', '');
mysql_select_db('', $db);
mysql_query('SET NAMES utf8');
?>

Je ne sais plus si c'est cela qui a réglé mon problème...

Hors ligne

#6 12-08-2009 00:34:34

Ralph303
Membre
Lieu : St-Cyr l'Ecole
Inscription : 30-05-2009
Messages : 98
Site Web

Re : Pb de codage des caractères accentués

Bon, ça n'a pas réglé mon pb, mais ça m'a fait avancer...

J'ai ce message d'erreur sur mon ordi avec EasyPHP:

Erreur SQL !SELECT dossiers.dossierid FROM possede, dossiers WHERE possede.userid='1' AND possede.dossierid=dossiers.dossierid AND nomdossier='Boîte de réception'
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

Qd je remplace 'Boîte de réception' par 'Boite de reception', ça ne me fait plus d'erreur.
C'est que ça vient bien des accents...
Sur le serveur de mon hébergeur, ça ne me fait pas d'erreur mais ça doit qd même planter car ça a pour effet de bord de planter ma messagerie.

Donc, je me base sur le message d'erreur de mon ordi:
Je ne sais pas exactement quoi en conclure...
Ce que je comprend, et c'est évident, c'est qu'il y a une incompatibilité entre le charset utf8 que j'ai défini dans mes scripts avec le code que
tu m'a donné et un autre charset.

Cet autre charset, je ne sais pas ce qu'il est. Je pense qu'il s'agit simplement de ce que PHP déduit de ce que j'ai tapé au clavier, c'est à dire
'Boîte de réception', un texte avec des accents.
Mais rien n'est moins sûr.
Je précise que je n'ai pas utilisé de charset latin comme je le disais dans mon précédent post.

J'ai essayé de définir un charset latin sur le serveur pour voir, mais le phpMyAdmin me remet systématiquement ut8_general_ci...
On ne peut donc pas modifier le charset sur le serveur. Ca veut sans doute dire que les réglages par défaut conviennent à un site Français,
ou alors mon hébergeur a fait une erreur.

Voilà, je ne sais plus quoi faire et je suis fatigué, il est tard...
Je verrai ça demain.

En tous cas, merci pour ton aide !

Ralph303

Hors ligne

#7 12-08-2009 03:13:51

Ralph303
Membre
Lieu : St-Cyr l'Ecole
Inscription : 30-05-2009
Messages : 98
Site Web

Re : Pb de codage des caractères accentués

Ce pb m'a empêché de dormir...

Mais j'ai trouvé un article qui nous donne la réponse:
http://www.aquatz.com/Encodage-converti … L_a36.html

En effet, tu avais raison, il faut bien mettre le code que tu m'as donné.
De plus, j'avais bien supposé: il faut mettre du utf8 partout...
Il faut aussi saisir les données de la base et du code PHP avec un éditeur configuré en utf8, mais je ne sais pas encore comment faire.

De plus, je me demande s'il faut mettre:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
ou:
<meta http-equiv="Content-Type" content="text/html; charset=utf8">

J'ai essayé les 2 et à priori c'est utf8 sans le tiret, car sinon ça m'affiche des carrés à la place des accents.

Voilà, y'a plus qu'à...
Je tiendrai au courant la communauté de ce forum des subtilités de la solution.

Encore merci à toi !

Ralph303

Dernière modification par Ralph303 (12-08-2009 03:43:45)

Hors ligne

#8 12-08-2009 08:11:59

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : Pb de codage des caractères accentués

Effectivement, j'avais oublié le charset de l'éditeur ^^.
Et maintenant que j'y pense, cela peut aussi venir du navigateur ? :S
Pour ce qui est du charset, j'ai l'impression que les deux existent mais je ne saurais dire ce que les distingue.

Hors ligne

#9 12-08-2009 18:59:53

Ralph303
Membre
Lieu : St-Cyr l'Ecole
Inscription : 30-05-2009
Messages : 98
Site Web

Re : Pb de codage des caractères accentués

Voilà, ca marche !!!

Oui, pour éditer en utf-8, j'ai utilisé DevPHP, un freeware qui permet de choisir le format d'édition...
Il suffit de sélectionner utf-8 dans "format".

Pour le charset, il faut mettre utf-8 au lieu de utf8.

Merci pour ton aide !
a+

Ralph303

Hors ligne

Pied de page des forums