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

Langage PHP Discussion :

Accent et encodage UTF-8


Sujet :

Langage PHP

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 065
    Points
    6 065
    Par défaut Accent et encodage UTF-8
    Bonjour,

    Je sais que ce problème a été mainte fois abordé et malgré les divers sujets lu je ne comprends pas ou se trouve mon problème d'accent qui s'affiche chez mon hébergeur.
    Sur mon Nas (Synology) j'avais pas de problème de caractère spéciaux mais depuis que je l'ai passé sur mon hébergeur (1&1) ça part en sucette.
    - Mes fichiers sont bien en UF-8, passé par un script PHP, passé par Notpad++, Dreamweaver, tout est configuré en UTF-8.
    - L'encodage HTMLest bien déclaré aussi en UTF-8.<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    - J'utilise bien : mysql_set_charset($db_link,"latin1");
    - J'ai changé dans le champ ma table en utf 8
    - Le serveur Mysql est bien en utf-8
    - dans le fichier SQL il y a tout en UTF-8 au niveau de la structure des tables
    - Si je change dans le navigateur l'encodage : Europe Central ISO ça s'affiche bien.
    - j'ai placé en entête de ma page PHP : header( 'content-type: text/html; charset=utf-8' );
    - Dans PHPMyadmin la même information s'affiche bien.
    - Le navigateur me dit que la page est UTF-8
    - J'ai utilisé une fonction php permettant de connaitre l'encodage de la valeur : Résultat UTF 8
    - J'ai fais un test en affichant un é dans ma page ça s'affiche bien mais ce qui provient de la base Mysql c'est un point d'interrogation.

    Lorsque je souhaite afficher ceci, il n'y a rien qui apparait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo HTMLSPECIALCHARS($data['titre'],'UTF-8');
    Je vais devenir chèvre !

    Aurais-je raté une étape

    Merci à vous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 393
    Points : 15 754
    Points
    15 754
    Par défaut
    Citation Envoyé par berceker united Voir le message
    - Si je change dans le navigateur l'encodage : Europe Central ISO ça s'affiche bien.
    ça veut certainement dire que les données sont stockées dans cet encodage dans la base de données.

    peut-être que le transfert d'une base de données à l'autre a fait une conversion d'encodage. est ce que vous avez la possibilité de refaire ce transfert ou vous allez perdre des données qui ont été rajoutée entre temps ?

  3. #3
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 065
    Points
    6 065
    Par défaut
    Merci pour votre retour.

    J'ai en effet fait un transfère de fichier, je me suis assuré que PhpMyadmin source export bien en UTF-8 et que l'import le soit aussi. j'ai regardé dans Notpad++ le fichier est en utf-8.

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Pour être peinard, changer l'encodage de la base de données n'est pas suffisant, il te faudra réencoder toutes les valeurs contenues dans ta base en UTF-8 et ensuite après tu pourras aller aux fraises

  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 065
    Points
    6 065
    Par défaut
    J'ai réimporté le fichier sql et j'ai constaté qu'il y avait des default charset en latin. J'ai changé en UTF-8 puis j'ai importé le fichier. Rien à faire, il ne veut pas comprendre.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 393
    Points : 15 754
    Points
    15 754
    Par défaut
    Citation Envoyé par berceker united Voir le message
    - J'utilise bien : mysql_set_charset($db_link,"latin1");
    je viens de voir ça, latin1 c'est ISO-8859-1 donc ça peut poser problème mais d'un autre côté si vous aviez ça déjà sur le NAS, le problème est peut-être ailleurs.

    au sujet de votre fichier exporté, vous êtes bien sur que c'est en UTF-8 et que ce n'est pas Notepad++ qui a fait la conversion en l'ouvrant ?

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 065
    Points
    6 065
    Par défaut
    J'avais pas vu que j'avais laissé latin1 mais cela ne change rien même si je met UTF-8.
    Sur le NAS je n'ai justement pas ce problème.
    J'importe le sql en copier/coller, Notpad++ est bien resté en utf-8.

Discussions similaires

  1. Encodage UTF-8 enlève les accents d'un String
    Par Marc_27 dans le forum Langage
    Réponses: 11
    Dernier message: 06/11/2014, 17h48
  2. [C# 2.0] Comment réaliser un encodage UTF-8 ?
    Par StormimOn dans le forum C#
    Réponses: 2
    Dernier message: 18/10/2006, 10h35
  3. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  4. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

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