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 :

Les accents ne passent pas entre MS SQL et PHP ? [SQL-Server]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut Les accents ne passent pas entre MS SQL et PHP ?
    Bonjour.
    Voilaà : je remplis une liste déroulante via PHP en éxécutant une procédure stockée dans ma BD SQL Server 2000. Les accents ne passent pas dans ma liste, j'ai des caractères tout bizarres. J'ai essayé d'encoder la page web en différents "charsets" (ISO-8859-1, UTF-8, ...) mais rien n'y fait.
    Grrrrrrr
    ça m'énerve.

    Merci
    Steph

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Nous allons pour un premier temps circonscrire le domaine du problème:
    SQL Serveur ou php ?
    Que vous donnes l'exécution de la même procedure stockée dans l'analyser de requette ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut
    Bonjour et merci de répondre. L'exécution de la requête (de la procédure stockée) dans l'analyseur de requête renvoie un résultat correct : les caractères accentués apparaissent normalement

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Il ressort donc qu'il s'agit d'un problème php et non SQL Serveur.
    J'invite donc les spécialistes php.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    bonjour,

    as tu essaye la fonction htmlentities() sur les resultats de ton query?
    http://fr.php.net/manual/fr/function.htmlentities.php

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut
    J'ai essayé la fonction htmlentities, mais ça ne change rien. Par contre, et c'est étonnant, l'encodage CP850 (IBM 850) affiche correctement la liste... mais pas le reste de la page.

    Merci à WOLO Laurent

  7. #7
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    c'est vraiment bizarre car l'encodage CP850 est le latin1 Dos

    peut etre en essayant de transformer tous les caracteres speciaux en code ascii?

  8. #8
    Membre chevronné Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Par défaut
    J'ai déjà eu ce problème, mon sql serveur me renvoyais toujours tout en utf8, quoi que je fasse, donc j'ai fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo utf8_decode($variable);

  9. #9
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    oui mais dans son cas il ne lui renvoie pas de l'utf8 mais du CP850 qui est le format latin1 DOS => ISO-8859-1.

    donc peut etre en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo utf8_encode($variable);
    et en mettant l'encodage de la page en uft8 ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut
    Yiannis et GregPeck, je viens d'essayer avec utf8_decode, page encodée en ISO-8859-1, et avec utf8_encode(), page encodée en UTF-8, nada. C'est toujours pareil ! Soit j'ai une virgule à la place du é, ou un ? à la place du é.


    Toutefois, je dois dire que le champ était paramètré dans SQL Server en Latin 1 Général, ceci explique cela. Je l'ai remis en format par défaut, qui est "French", c'est pareil, sauf que cette fois les caractères ne sont même pas remplacés.

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    et la ta page est encore en 8859-1 ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut
    Oui toujours. Je fais des tests en changeant dans SQL Server ce qu'ils appellent le classement. En mettant un classement SQL_Latin1_General_CP1251_CI_AS (Case Insensitive, Accent sensitive), j'obtiens une liste avec les lettres mais sans les accents, ce n'est déjà pas si mal. Je pense donc qu'il s'agit d'un problème d'encodage par SQL Server et non d'une interprétation erronée de PHP. Mon message a peut-être été déplacé trop vite du forum MS SQL ?

  13. #13
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Citation Envoyé par stephane9422
    Je pense donc qu'il s'agit d'un problème d'encodage par SQL Server et non d'une interprétation erronée de PHP.
    je le pense aussi

  14. #14
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par stephane9422
    Je pense donc qu'il s'agit d'un problème d'encodage par SQL Server et non d'une interprétation erronée de PHP. Mon message a peut-être été déplacé trop vite du forum MS SQL ?
    Dans la mésure où le problème ne se pose pas dans Query Analyser, comment pouvez vous rechercher le problème du côté de SQL Serveur ?
    Quelle gachie en temps ?
    C'est vraiment une perte de temps !!!!

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  15. #15
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Citation Envoyé par wolo Laurent
    Dans la mésure où le problème ne se pose pas dans Query Analyser, comment pouvez vous rechercher le problème du côté de SQL Serveur ?
    Quelle gachie en temps ?
    C'est vraiment une perte de temps !!!!
    excuse moi, je ne connais rien a ms sql serveur, mais dans mysql si tu as un encodage par exemple japonais, lorsque tu feras ton query les resultats seront retourne avec l'encodage japonais->donc pas d'erreur. Or si tu affiches cela sur une page avec un encodage iso-quelquechose, la tu verras des problemes sur les caracteres. Euh, je me trompe???

    de notre cote, nous avons essaye pas mals de chose depuis hier avec stephane9422, sans succes, alors que quand il change l'encodage du serveur sql, il obtient des resultats.

    Encore une fois, je me trompe peut etre (n'ayant pas la science infuse en sql, ni meme en php)

  16. #16
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Dans le mésure où dans Query Analyser qui est aussi une application cliente pour un serveur de Base de données, le problème ne se pose pas !
    Pourquoi devait-il se poser pour un serveur php qui est aussi un client pour le même serveur de base de données ?
    C'est là que je positionne mon raisonnement.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  17. #17
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Ok
    J'avoue que je suis sur le probleme depuis hier et franchement je ne vois pas la soluce.
    Pourrais-t-on avoir le code de la page ou la liste est affichee ?

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut
    je ne veux pas polémiquer sur SQL Server ou PHP, juste essayer de résoudre le problème. Voici le code de la page en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <form action="SaisieJustificatif.php" method="post">
     
    <p>
    Date : <input type="text" name="DateJ" />   Montant :  <input type="text" name="MntJ" />   Démonstratrice: <select name="ctnum" selected = "">
    <?php
     
            $conn = mssql_connect("xxx", "xxx", "xxx");
            mssql_select_db("xxx", $conn);
     
    		$stmt = mssql_init("MaProcedureStockee", $conn);
    		$query = mssql_execute($stmt);
     
    	while ($demos = mssql_fetch_assoc($query)) //remplissage de la liste déroulante
    	{
    		echo '<option value="'.$demos['CT_Num'].'">'.$demos['CT_Classement'].'</option>';
    	}
    ?>
    </select><br>
     
    <input type="submit" value="Valider" />
    Cette page a un en-tête en ISO-8859-1. C'est le champ CT_Classement qui pose problème. Pour ceux qui connaissent, CT_Xxxxx, c'est une bd SAGE sous SQL...
    Merci encore

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Par défaut
    Je vois qu'on laisse tomber. J'ai toujours mon problème et je ne trouve vraiment aucune aide nulle part.
    Merci quand même
    Steph

  20. #20
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    je suis desole pour toi stephane 9422, mais j'ai essaye tous ce que je pouvais et ne trouve pas la solution donc je passe la main en esperant que quelqu'un puisse te donner un coup de main

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FPDF] Les accents ne passent pas avec FPDF
    Par beegees dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 02/03/2009, 09h16
  2. [PDO] Base de données en Unicode mais les accents ne passent pas
    Par seïna dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 30/12/2008, 16h04
  3. Les accents ne sont pas affichés
    Par Colbix dans le forum Mise en forme
    Réponses: 2
    Dernier message: 17/04/2007, 17h26
  4. [EasyPHP] Les variables ne passent pas sur EasyPHP
    Par b6i6o6 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 10/02/2006, 12h37
  5. Envoie mail incorrect : les accents ne passe pas !
    Par wappyboy dans le forum Modules
    Réponses: 4
    Dernier message: 05/01/2006, 09h24

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