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 :

PHP/Sqlite : afficher caractères accentués


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut PHP/Sqlite : afficher caractères accentués
    Bonjour,

    En ligne de commande, sqlite affiche correctement le contenu accentué de mes tables. Sur la page php, j'arrive également à afficher des 'echo' avec du contenu accentué par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'Coucou, tu veux voir mes caractères ?";
    Cela ne paraît donc pas être un problème d'encodage et pourtant, lorsque je requête via du php sur ma base ça déconne sur les accents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $db = new SQLite3('database.sqlite');
     
    if(isset($_GET['search'])) {
        $rec = htmlentities($_GET['search']);
    } else { 
        $rec = ''; 
    }
     
    $result3 = $db->query('SELECT lastname,firstname,phone,location FROM rh WHERE name != "" AND lastname || " " || firstname  || " " || location LIKE "%'.$rec.'%" ORDER BY name asc LIMIT 25');
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    echo '<h3>Results</h3>';
    echo '<tr><th>Name</th><th>Phone</th><th>Location</th></tr>';
    while ($row = $result3->fetchArray(SQLITE3_ASSOC)) {
    echo '<tr><td>' . $row['lastname'] . ' ' . $row['firstname'] . '</td><td>' . $row['phone'] . '</td><td>' . $row['location'] . '</td></tr>';
    }
     
    $db->close();
    ?>
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'obtiens-tu ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Ce vilain caractère à la place des caractères accentués : �.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Cela signifie que ta base de donnée communique en ISO alors que PHP écrit en UTF8.
    Tu devrais contrôler l'encodage du fichier .php lui même.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Le fichier est encodé en UTF8 sans BOM. Cela voudrait dire qu'il faudrait que je trouve comment faire communiquer sqlite en UTF8 ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Soit tu changes du côté PHP soit du côté SQlite oui.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    J'aimerais bien le changer du côté de sqlite mais je patauge avec la doc, si quelqu'un sait faire je suis preneur.

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Sqlite n'a qu'un paramètre pour l'encodage : http://www.sqlite.org/pragma.html#pragma_encoding qui est soit de l'utf8 soit de l'utf16.
    Il n'est pas possible de changer l'encodage d'une bdd sqlite après sa création. Tu peux toujours vérifier sa valeur avec la requête : PRAGMA encoding.

    Je ne sais pas comment fonctionne la classe SQLite3 , mais perso je suis toujours passé par PDO sans souçis à partir du moment ou tout le workflow est en utf8 (html,php,bdd).
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Problème pour afficher caractères accentués
    Par sisiniya dans le forum Struts 1
    Réponses: 4
    Dernier message: 01/08/2010, 15h02
  2. Les caractères accentués PG+PHP
    Par imer5 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 11/07/2006, 09h17
  3. [Oracle] [php] insert de caractères accentués
    Par badcur dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/06/2006, 16h42
  4. [PHP][XSLT] problème caractères accentués
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 29/05/2006, 09h29
  5. [SQL-Server] ms sql server et php : problème avec les caractères accentués
    Par stephane9422 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/12/2005, 17h45

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