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 :

problème d'encodage Oracle <-> PHP [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 30
    Points
    30
    Par défaut problème d'encodage Oracle <-> PHP
    Bonjour, je n'arrive pas à résoudre un problème d'encodage dans le resultat d'une requete SQL. Les accents disparaissent !
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     
      <head>
            <meta http-equiv="Content-Type" content="text/html; utf-8" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
     
            <title>INDEX</title>
     
            <script type="text/javascript" src="defaut.js"></script>
     
            <link rel="stylesheet" type="text/css" href="defaut.css" />
      </head>
     
     
      <body>
      <?php
     
    echo aff();
     
     
    function aff()
    {
        include("outils_connexionBD.php");
        $cnx=connexionBDD();
        $sql="SELECT ....";
     
        $statement=oci_parse($cnx, $sql);
        $resultats=oci_execute($statement);
        while($d=oci_fetch_array( $statement ))
            $retour.=htmlentities( $d[0], ENT_QUOTES);
     
        deconnexionBDD($cnx);
     
        return $retour ;
    }
    ?>
     
      </body>
    </html>
    - L'affichage du resultat est sans accent.
    - Le resultat dans le code source est sans accent.
    - L'encodage du text dans cette page est utf-8
    - Le type de la donnée est VARCHAR2, qui ici est en WE8MSWIN1252 (NLS_CHARACTERSET)
    - Un mb_detect_encoding($d[0]) me donne ASCII (en contradiction avec la ligne précedente)
    -Un mb_convert_encoding($d[0], "utf-8", "WE8MSWIN1252") retourn une erreur
    -Un mb_convert_encoding($d[0], "utf-8") n'y change rien

    Je ne vois pas ce que je peux faire de plus.

    Quelqu'un aurait une idée ?
    merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    la solution :
    $cnx = oci_connect(utilisateur,motDePasse,BD,leCharset)

    avec leCharset = NLS_CHARACTERSET de oracle


  3. #3
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Points : 289
    Points
    289
    Par défaut
    Salut a tous
    j'ai le meme probleme et j'ai appliqué ce workaround...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $conexion = oci_connect('user', 'passw', 'db','UTF8');
    et dans la page php j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
    ça sort comme ceci sur l'ecran:

    Ciencias y biologÃ*a

    Normalement ça devrait etre: biología
    Une idée?

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

Discussions similaires

  1. [OCI] Problème sur un serveur Oracle + Apache 2 + PHP
    Par sebvita dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 23/01/2009, 16h27
  2. [Oracle] Problème d'accent oracle / php
    Par madevilts dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/04/2008, 11h40
  3. Réponses: 24
    Dernier message: 06/02/2008, 13h59
  4. [PHP/MySQL] Problème d'encodage
    Par ymoreau dans le forum Outils
    Réponses: 13
    Dernier message: 11/01/2007, 12h08
  5. [PHP] Probléme d'encodage
    Par bouazza92 dans le forum Langage
    Réponses: 8
    Dernier message: 02/10/2006, 11h55

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