Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 09h41   #1
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Par défaut Problème encodage sur IE

Bonjour à tous,

J'aimerais avoir si possible une explication sur l'encodage parce que je suis complétement pommé...

Base, Table, encodage du HTML, du navigateur...

Très difficile à mettre en pratique.

Ma base : utf8_general_ci
Mes tables : certaines en latin1_swedish_ci et d'autre en utf8_general_ci
Mon encodage de page sous Dreamweaver : Europe Centrale (ISO)
Mon navigateur : Occident ISO-8859-1 quand on se trouve sur le site.

Quand je lance l'ajax avec JQuery : xhr.overrideMimeType('text/html; charset=ISO-8859-1');

J'aimerais éviter d'utiliser des utf8_encode ou des choses dans le genre, j'aimerais savoir comment faire en sorte que tout soit adéquat (mon site n'était pas encore lancé et en créant souvent, ça me sera utile).

Merci d'avance.
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 09h49   #2
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
tu tombes bien, je crois voir eu tous les pb possibles et imaginable en la matière.
En effet, MySQL n'est pas clair pour ça, la base en général est en utf_8 ... mais pas les tables etc.

Le tout est que la base en générale soit en utf_8.
Pour JQuery, je rappelle que le transfert se fait en utf-8 (format JSON).

Es-ce que tu pourrais nous montrer :

- l'en-tête de ta page html (<head></head>).
- le code de connexion à la base de données (sans les identifiants bien-sûr )
- .... et si tu est sous notepad++, regarde ce qui est coché dans le menu "Encodage".

Attention, ne touche à rien dans ce MENU ! En fait, si il est encodé en ISO, il ne faut surtout pas cliquer sur "Encoder en utf-8", parce que ça va te faire plein de caractère illisibles, et c'est irrécupérable. donc un conseil, fait une sauvegarde avant !

Si l'encodage n'est pas en "utf-8 (sans BOOM)", il faut cliquer sur "convertir en utf-8 (sans BOOM)", mais pas sur "Encoder en utf-8 (sans BOOM)".

la différence est catastrophique
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 09h54   #3
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Voici mon head
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title><?php echo $meta_page_titre; ?></title>
        <meta name="description" content="<?php echo $meta_description; ?>" />
        <meta name="keywords" content="<?php echo $meta_motcle; ?>" />
        <meta name="copyright" content="" />
        <meta name="language" content="fr" />
        <meta name="revist-after" content="7 days" />
        <meta name="distribution" content="global" />
        <meta name="robots" content="ALL" />
Mon script de connexion :

Code :
1
2
$connexion = mysql_pconnect($db_host,$db_user,$db_password);
$select_base= mysql_select_db($db_base,$connexion);
Je code sur Dreamweaver et l'encodage est : Europe Occidentale (ISO)
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 10h14   #4
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
plus étonnant que ça va pas
je t'ai expliqué la manipe pour notepad++, mais je ne connais pas Dreamweaver ... tu devrais trouver avec quelques recherches.

pour le document html, remplace

Code :
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
par

Code :
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Dans ton code de connexion, rajoute à la fin :

mysql_query("set names 'utf8'");
(set names 'utf8' est une requête comme les autres.)

voilà, avec ça ça devrait aller.
un lien qui pourrait t'aider :
http://j-willette.developpez.com/tut...-en-utf8/#LIII

la manipe y est expliquée pour Dreamweaver

bon courage.
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h13   #5
Membre éclairé
 
Avatar de Nowwis
 
Homme
Développeur Web
Inscription : juin 2009
Messages : 363
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 363
Points : 365
Points : 365
Merci beaucoup je vais regarder ça de plus près
Nowwis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h55   #6
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
normalement, pas besoin de mettre la fonction header dans chaque page php.
si le problème persiste avec la base de donnés, le meilleure moyen est de l'exporter complètement, de copier le code produit dans un éditeur, puis avec cette éditeur convertir en utf-8, puis de réimporté la page ... mais on a normalement pas besoin d'aller si loin.
bon courage.

NB

les cas "compliqués", c'est quand on récupère du texte venant d'autres sites avec des encodages différents
j'ai été obligé de le faire pour un boot de recherche, il faut détecter quelle encodage c'est etc.

à bientôt.
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h58   #7
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Bonjour,

Juste pour revenir sur une chose qui m'a fait tombé de mon fauteuil :

Code :
$connexion = mysql_pconnect($db_host,$db_user,$db_password);
On ne doit plus utiliser pconnect mais connect sinon tu vas avoir de très gros soucis lors de la mise en production de l'application cf la documentation PHP

Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 12h03   #8
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
Citation:
Envoyé par Inazo Voir le message
Bonjour,

Juste pour revenir sur une chose qui m'a fait tombé de mon fauteuil :

Code :
$connexion = mysql_pconnect($db_host,$db_user,$db_password);
On ne doit plus utiliser pconnect mais connect sinon tu vas avoir de très gros soucis lors de la mise en production de l'application cf la documentation PHP

Cordialement,
le mieux étant je crois d'utiliser PDO (je connais que ça)...
les avantages :

- Orienté objet
- Performant et facile d'utilisation pour les requêtes préparées.
- et ... plus récent que mysql_ donc plus performant et sécurisé (enfin, j'imagine)

n'hésite pas à me demander pour plus de renseignements si ça t'intéresse
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 12h13   #9
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
L'avantage de PDO c'est de pouvoir utiliser les même fonction pour plusieurs SGBD.

Plus sécurisé à condition d'utiliser les fonctions fournis tout comme mysql_ et je ne pense pas (j'ai fait de bench) que le gain se trouve en performance ou en sécurité.

Mais c'est vrai que PDO peut être une très bonne idée

Cordialement;
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 18h51   #10
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,

Tu peux également trouver d'autre réponses dans le tutoriel Encodez votre site en UTF-8 sans manquer une étape et l'adapter à ton encodage.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web