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 :

Insertion de caracteres roumains, russes etc [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Par défaut Insertion de caracteres roumains, russes etc
    Bonjour à toutes & tous.

    Mon problème est le suivant:
    - Ma table est en utf8_general_ci
    - Je dois récupérer des informations de sites en roumains, russes, arabes, japonais etc
    - Je parvient à afficher dans ma page web les caracteres correctement, mais pas à les insérer correctement dans ma table.

    Voici le code que j'utilise pour encoder le texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $description = mb_convert_encoding($description, 'UTF-8', 'auto');
    Après ca, tout s'affiche bien, mais apres Insert rien ne va plus

    Avez vous une idée de comment corriger ca ?

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Salut,

    pour éviter tout problème tu dois être homogène sur toute la ligne de traitement au niveau des encodages :
    - Fichiers à convertir en UTF-8 sans BOM
    - Charset HTML : UTF-8
    - En cas de problème avec la base s'assurer de faire un SET NAMES UTF-8 à l'ouverture de la connexion (MySQL)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Par défaut
    Salut,

    Fichiers à convertir en UTF-8 sans BOM
    Tu parles du fichier php qui fait le traitement, ou de la page web recupérée ?

    En cas de problème avec la base s'assurer de faire un SET NAMES UTF-8 à l'ouverture de la connexion (MySQL)
    Comment faire ca en php ?
    Je vois bien en ligne de commande mais en php ...

    Merci beaucoup en tout cas

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Tout ce que tu manipules devrait être en utf-8 sans BOM (.php, .css .js...)
    Précise comment tu attaques ta base de données, stp.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Par défaut
    Je recupere la page en file_get_contents, je la stocke en local avec un fopen (fichier txt).

    J'utilise mysqli pour ouvrir ma connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connect = new mysqli('localhost', 'root', '', $nomDriver)

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    file_get_contents() casse les chaines utf8, c'est la raison de ton problème.

    Une solution ici

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Par défaut
    Alors, merci pour cette info

    J'ai fait la modif.

    Je me retrouve avec mon fichier php en utf-8 sans BOM, pareil pour le fichier .txt qui correspond à la page recupérée avec file_get_contents.

    Lorsque j'affiche le contenu, tout s'affiche bien, mais lorsque je l'insere dans la base, ca ne va plus

    Je ne vois plus trop ce qui cloche, peut être mysqli à configurer en utf-8 quelque part ?

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Par défaut
    J'ai trouvé la solution, il fallait ensuite faire un utf8_decode avant l'insertion.

    Ensuite la page web qui affiche le contenu de la base doit bien sur être encodée en utf-8

    Merci beaucoup rawsrc pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/06/2009, 13h55
  2. Insertion du caractere euro sur SQL Server 2005 Express
    Par solidxiii dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/06/2008, 10h37
  3. insertion des caracteres : ’ et ‘ dans la bd
    Par mrdindo dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 16/06/2008, 04h21
  4. INSERT et caracteres speciaux
    Par elvivo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/05/2007, 10h43
  5. Insertion de caractères
    Par azerty169 dans le forum Linux
    Réponses: 4
    Dernier message: 13/03/2006, 12h20

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