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

Oracle Discussion :

probleme charset oracle php


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 34
    Points : 19
    Points
    19
    Par défaut probleme charset oracle php
    Bon voila, j'ai un probleme de charset avec oracle 10.1.0 et php 4.3.11 et apache 2.0.52

    J'ai mis dans apache httpd.conf > AddDefaultCharset "UTF-8"
    Dans php php.ini > default_charset = UTF-8
    Dans la variable d'environement du user ora10g > NLS_LANG = FRENCH_FRANCE.AL32UTF8

    mes page.php sont encodées en UTF-8
    j'ai mis comme meta <meta http-equiv=content-type content="text/html; charset=UTF-8">

    J'ai créé une base de donnée TEST en precisant le charset UTF-8 et
    NLS_LANGUAGE = FRENCH
    NLS_TERRITORY = FRANCE
    NLS_CHARACTERSET = UTF-8

    cela dit qd je tape la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM sys.props$
    WHERE name LIKE 'NLS%' ;
    NLS_LANGUAGE = AMERICA
    NLS_TERRITORY = AMERICAN
    NLS_CHARACTERSET = et bien UTF8

    et quand j'insere via une page php mes accents sont foireux j'ai des ??????
    mais si j'insere via la console oracle ca marche mais quand j'affiche le resultat dans une page php les éàè deviennent eae.

    J'ai essayé aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER SESSION SET NLS_LANGUAGE = FRENCH
    ALTER SESSION SET NLS_TERRITORY = FRANCE
    Je ne comprend pas d'ou vient le probleme ca fait mnt 1 semaine que je tourne en rond

  2. #2
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Points : 58
    Points
    58
    Par défaut
    Bon je sais pas si ca peut t'aider mais chez moi ca marche alors voici mes "valeurs":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J'ai mis dans apache httpd.conf > AddDefaultCharset "UTF-8"
    Moi j'ai pas de AddDefaultCharset ... (celui par défaut alors, je suppose)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dans php php.ini > default_charset = UTF-8
    J'ai pas non plus de default_charset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j'ai mis comme meta <meta http-equiv=content-type content="text/html; charset=UTF-8">
    J'ai ISO-8859-1 au lieu de UTF-8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM sys.props$ 
    WHERE name LIKE 'NLS%' ;
    me donne
    NLS_LANGUAGE = AMERICAN
    NLS_TERRITORY = AMERICA
    NLS_NCHAR_CHARACTERSET = WE8MSWIN1252 (?????je sais pas ce que c'est mais j'ai ca...)

    Et ca marche dans tous les sens (PHP->Oracle; Oracle->PHP) pour les éàè et d'autres... voila, maintenant si tu dois rester en UTF-8, ca ira pas...
    ++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    j'ai reglé le probleme en modifiant la variable d'environement du user oracle
    NLS_LANG = FRENCH_FRANCE.AL32UTF8
    par
    NLS_LANG = FRENCH_FRANCE.WE8ISO8859P1

    mais apres en reconfigurant php.ini avec --with-iconv , rien ne va plus et pas moyen de regler le probleme j'ai pourtant recompilé php sans mettre ce --with-iconv. je comprends pas

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    il faut prèférer WE8ISO8859P15 à WE8ISO8859P1 le premier intégrant le caractère €

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour j'ai exactement le meme probleme dans ma base j'ai des éèà et avec php j'ai des eea.

    J'ai bien :
    NLS_LANGUAGE = FRENCH
    NLS_TERRITORY = FRANCE
    NLS_CHARACTERSET = WE8ISO8859P1

    quelqu'un peut m'aider

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Avez vous trouvé une solution ?

    J'ai le même problème.

    dans quel fichier ajoute on la ligne meta ?

    Mon serveur SGBD est ORACLE 11g sous Win et mon serveur PHP/apache LINUX.

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Evitez les erreurs de conversion grâce aux NLS
    Vérifie la variable d'environnement NLS_LANG du user du serveur linux.

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci pour ta réponse.

    Justement je ne sais pas comment forcer mes variables d'environnement ORACLE sur mon serveur APACHE. En forçant mes variables via le code php, je n'arrive à rien. Je suis vraiment dans l'impasse. Dois-je modifier ma conf de mon SGBD ORACLE 11 g en unicode (installation initiale en WE8MSWIN1252) ?
    Je ne sais plus quoi faire. Merci

Discussions similaires

  1. [Oracle] Probleme variable requete SQL Oracle PHP
    Par tatann dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/03/2011, 17h25
  2. [CSS] Probleme affichage texte php
    Par davyazam dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/02/2006, 10h22
  3. [probleme] installation oracle sous red hat9
    Par itinerisme dans le forum Oracle
    Réponses: 4
    Dernier message: 16/01/2006, 14h53
  4. probleme install oracle 10g
    Par Leila75 dans le forum Installation
    Réponses: 5
    Dernier message: 12/10/2005, 08h28
  5. mysql 3.23 probleme charset
    Par lcoder dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/07/2005, 13h28

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