Page 1 sur 1

Problèmes d'accents

Posté : 02 janv. 2008, 23:56
par alaingpl
Bonsoir à tous,

Je fonctionnais avec Easyphp il y a encore quelques jours et j'ai téléchargé wampserver2. Depuis lorsque je tape éèà€ etc... il me renvoi des ����� avec ie ou des ? avec ff.

Petite précision : dans la bd les lettres sont correctes et quands j'affiche les infos de la bd dans un textarea elles s'écrivent correctement.

Je n'ai rien modifié sauf ma bd. Le problème pourrait il venir du php.ini ? Si oui que dois je modifier ?

Merci d'avance de l'aide.

Posté : 03 janv. 2008, 00:04
par Xenon_54
Quel est l'encodage de ta table SQL?
Quel est l'encodage de ta page PHP?

Compare les 2. Ils doivent être identiques. Autrement tu auras ces problèmes d'encodage.
De plus, si vous utilisez un encodage multi-octet sur MySQL 4.1, il est important de régler l'encodage d'affichage de votre page web sur le même que celui utilisé dans votre base de données. Sinon la page ne sera pas configurée pour afficher la page en UTF-8, alors prendra les 2 octets nécessaires à l'affichage du "é" séparément, affichant ainsi "é". Une mauvaise configuration du client ou des entêtes créera toujours ce genre de "problèmes".

Posté : 03 janv. 2008, 00:07
par Aureusms
Non cela vient de l'interprétation des accents sous FF.
Qu'as tu en tout premier dans tes balises META ?

Note ceux de cette page sont :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html dir="LTR"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="Content-Style-Type" content="text/css">
tu vois le charset=ISO-8859-1 indique à FF comment il doit afficher les caractères accentués.
Si tu n'a pas cela prends les équivalents HTML http://www.commentcamarche.net/html/htmlcarac.php3 que tu utilises via la fonction str_replace :
$caracteres = array ("é","è");
$caracteres_HTML = array ("&eacute;","&egrave;");

$texte = str_replace($caracteres,$caracteres_HTML,$texte); 
Les deux tableaux doivent avoir le même niveau.

Posté : 03 janv. 2008, 00:14
par Xenon_54
Quel est l'encodage de ta page PHP?
J'ai dû mal m'exprimer. Je parle de la page qui a été envoyé à ton client et non de la source. Autrement:
Non cela vient de l'interprétation des accents sous FF.
Je ne comprends pas ton affirmation. Elle ne semble pas faire de sens.

L'encodage se fait avant l'envoi au client. Mais tu dois bien prendre soin d'envoyer la bonne en-tête HTTP afin d'indiquer quel encodage a été utilisé dans la page. Alors ton client pourra afficher avec le bon encodage.
Si tu n'a pas cela prends les équivalents HTML http://www.commentcamarche.net/html/htmlcarac.php3 que tu utilises via la fonction str_replace :
$caracteres = array ("é","è");
$caracteres_HTML = array ("&eacute;","&egrave;");

$texte = str_replace($caracteres,$caracteres_HTML,$texte); 
Les deux tableaux doivent avoir le même niveau.
Pourquoi utiliser les entitées HTML alors qu'un bon encodage fera tout aussi bien le travail? Mon avis sur le sujet est qu'utiliser cette méthode montre qu'on ne comprend pas bien le principe des jeux de caractères.

Posté : 03 janv. 2008, 00:15
par alaingpl
Merci de m'avoir mis sur le bon chemin:

j'avais ça :

Code : Tout sélectionner

<meta http-equiv="content-type" content="text/html; charset=utf-8 encode" />
et j'ai fait ça :

Code : Tout sélectionner

charset=iso-8859-1
Ca fonctionne. Merci.

Posté : 03 janv. 2008, 00:34
par Aureusms
J'ai dû mal m'exprimer. Je parle de la page qui a été envoyé à ton client et non de la source.
Non tu ne t'ai pas mal exprimé j'ai pas lu c'est tout (mais c'est pas moi qui a posté :lol: )
Je ne comprends pas ton affirmation. Elle ne semble pas faire de sens.
Voir au dessus !! Toujours pas moi qui est posté !

L'encodage se fait avant l'envoi au client. Mais tu dois bien prendre soin d'envoyer la bonne en-tête HTTP afin d'indiquer quel encodage a été utilisé dans la page. Alors ton client pourra afficher avec le bon encodage

Je suis d'accord !
Pourquoi utiliser les entités HTML alors qu'un bon encodage fera tout aussi bien le travail? Mon avis sur le sujet est qu'utiliser cette méthode montre qu'on ne comprend pas bien le principe des jeux de caractères.

Juste pour donner une possibilité...

Posté : 03 janv. 2008, 00:39
par Xenon_54
J'ai dû mal m'exprimer. Je parle de la page qui a été envoyé à ton client et non de la source.
Non tu ne t'ai pas mal exprimé j'ai pas lu c'est tout (mais c'est pas moi qui a posté :lol: )
Je ne comprends pas ton affirmation. Elle ne semble pas faire de sens.
Voir au dessus !! Toujours pas moi qui est posté !
T'as une armée de volontaires qui postent en ton nom sur le forum ou t'as 2 personnalités? :)

Posté : 03 janv. 2008, 00:41
par Aureusms
Je crois plus que c'est la fatigue...
:lol: