IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Accents et apostrophes


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Accents et apostrophes
    Excusez-moi! Je sais que ce n'est la prémière discussion sur le sujet. Mais j'ai explorer les autres sans avoir bien de cause.

    En fait, j'ai mis mon site en ligne il y a environ 3 ans de cela. Il est hébergé sur ifrance.com. Jusqu'au 16 Mai 2007 tout marchait très bien. C'est à partir de cette date que tous les accents du site ne s'affichent plus correctement. En fait ce sont les accents des textes tirés du serveur, si non ceux des textes directement inserés sur les pages marchent très bien. En local tout marche bien également alors que les configurations des bases de données sont les mêmes.
    Voici un aperçu du problème:
    "La réalisation et l’optimisation des opérations ;
    La fiabilité des informations financières ;
    La conformité aux lois et règlementations en vigueur."

    J'ai besoin de votre aide. Je ne sais plus quoi faire.

    voici quelques informations de la configuration de la base de données:
    -Base de données MySql 5.0.22;
    -Language: French (fr-utf-8);
    -Jeu de caractères pour MySQL: UTF-8 Unicode (utf8);
    -Interclassement pour la connexion à MySql:utf8_general_ci;
    -Interclassement de toutes les tables:latin1_swedish_ci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Le texte récupéré est bien en UTF-8 mais le navigateur ne l'affiche pas en tant qu'UTF-8, vraisemblablement en latin1 ou ISO-8859-1.

    Plusieurs solutions possibles. Mais tout d'abord, il faut déterminer s'il est possible d'afficher correctement tes pages directement en UTF-8 ou non. Pour cela, affiche une page de ton site avec tes caractères bizaroïdes et force l'affichage de la page en UTF-8 : menu Affichage > Encodage > Unicode (UTF-8).

    Si tout s'affiche correctement (le texte récupéré de la base ET le texte contenu directement dans les pages), tu peux forcer le passage en UTF-8 en rajoutant un meta dans le head dans le haut de tes pages HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    ...
    A faire au moins pour chaque page où y a un pb d'affichage.


    Sinon, si y a un pb d'affichage, ou même si tout s'affiche bien, tu peux convertir le texte récupéré de la base en entité HTML (avec PHP, utilise htmlentities) ou le convertir en ISO-8859-1 (en PHP, utilise utf8_decode).

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème d'accents et d'appostrophes!
    Merci Mac pour les indications!

    Mais j'ai appliqué le meta et ca ne fonctionne pas bien. De même que le htmlentities et l'affichage forcé en UT8.

    Toutefois le utf8_decode marche. Alors si j'ai bien compris, cette fonction décode un texte envoyé en UTF8. Donc si elle marche dans mon cas c'est que, comme vous l'avez dis, les textes sont envoyés en UTF8 mais le navigateur les affiches en ISO. Cependant quand je force l'affichage en UTF8 en donnant au charset du metat la valeur utf-8 alors tous les textes se degradent même ceux qui sont directement sur les pages.

    En local, la fonction utf8_decode donne un resultat inacceptable. En effet les accents sont remplacés par des "?".

    Qu'est ce que je dois faire à présent? S'il vous plait

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Cependant quand je force l'affichage en UTF8 en donnant au charset du metat la valeur utf-8 alors tous les textes se degradent même ceux qui sont directement sur les pages.
    Ca ne force rien du tout, pour forcer tu dois utiliser un en-tête ou alors plus simplement un fichier htaccess que tu places à la racine avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddDefaultCharset UTF-8

Discussions similaires

  1. [MySQL] Requête sécurisée avec accent et apostrophe
    Par MistyMan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/06/2009, 11h25
  2. facelets et accents et apostrophe
    Par progamer54 dans le forum JSF
    Réponses: 1
    Dernier message: 07/03/2008, 13h49
  3. probleme affichage accents et apostrophes
    Par progamer54 dans le forum JSF
    Réponses: 2
    Dernier message: 30/10/2007, 10h48
  4. Copie de String Avec Accents ou Apostrophe
    Par progamer54 dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2007, 10h40
  5. Apres l'accent l'apostrophe
    Par man80 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 04/05/2004, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo