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 caractère spéciaux


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Par défaut Insertion de caractère spéciaux
    Bonjour,

    Lorsque je lance la requête insert into tous les caractères spéciaux se transforme dans ma base en ?
    exemple j'insert à partir d'un formulaire le mot hôtel je le trouve h?tel. J'utilise le codage UTF8 ou UTF8mdb4 c'est toujours pareil.

    Voici ma configuration:
    Version du serveur : 5.6.21 - MySQL Community Server (GPL)
    Jeu de caractères du serveur : UTF-8 Unicode (utf8)
    cpsrvd 11.44.3.1
    Version du client de base de données : libmysql - 5.1.73
    Extension PHP : mysqli
    PhpMyadmin: 4.1.8

    J'ai mis aussi dans mon formulaire: avant INSERT INTO:
    mysql_set_charset('utf8mb4');

    Aussi j'ai configuré le fichier de configuration MySQL (/etc/my.cnf):
    [client]
    default-character-set = utf8mb4

    [mysql]
    default-character-set = utf8mb4

    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci

    Et enfin ma base de données est en utf8mb4_unicode_ci

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Par défaut
    Bonjour,

    Je pense trouver la source du problème, ça viens de mon php:

    Quand je fais:
    $sql = 'INSERT INTO table VALUES ("accentué")';
    => ça s'ajoute correctement dans ma base de données

    mais lorsque j'utilise php:
    mysql_set_charset('utf8');
    $test=utf8_decode( 'Texte accentué' );
    echo $test;
    $sql = 'INSERT INTO firas VALUES ("'.$test.'")';
    => l'affichage me donne ça: accentu?
    aussi dans la base ça s'enregistre: accentu?

    Comment forcer php à prendre en concidération le UTF8?

    j'ai ajouté cette ligne dans httpd.conf:
    AddDefaultCharset utf-8

    Merci de me répondre.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Par défaut
    Salut,

    Peux-tu voir si le problème ne vient pas de l'absence de l'appel à la fonction ci-dessous ?

    http://php.net/manual/fr/mysqli.set-charset.php

    Cdt

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/05/2011, 17h45
  2. Réponses: 7
    Dernier message: 13/05/2009, 13h15
  3. Insert et caractères spéciaux
    Par eulstef dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/01/2008, 21h19
  4. Réponses: 4
    Dernier message: 09/10/2006, 16h19
  5. [SQL2]Insertion de caractères spéciaux
    Par willowII dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/10/2004, 15h33

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