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 :

[PHP & Oracle] caractères non reconnus


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut [PHP & Oracle] caractères non reconnus
    Bonjour,

    J'ai une application php (4.3) qui se connecte à une base oracle (9i). Certains des champs en base contiennent des copiers/colers de textes words avec quelques caractères spéciaux issus des remplacements automatiques (les trois points sur un seul caractère, le tiret/trait d'union long dans une phrase, ...)

    Mon problème est le suivant : quand je fais un select sur ces champs en php ou via sqlplus, ces caractères sont remplacés par des points d'interrogations inversés : "¿"

    J'ai essayé de placer différents charset via des setenv, ocilogon, pour retrouver le caractère initial qui est contenu en base, mais ca n'y a rien changé. Je sais qu'il est possible de les gérer, car cela fonctionnait sur le précédent serveur où se trouvait l'application et la base, le problème est que je n'y ai plus accès pour voir ce qui avait été fait.

    Si vous avez déjà été confronté à ce problème ou si vous voyez d'éventuelles pistes à creuser, je suis preneur, alors à vot' bon coeur m'sieur dames !!

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    Petites infos complémentaires, quand je regarde les charcode de ces caractères transformés par word, j'obtiens #8230 pour le "…" et #8211 pour le "–" (nota : ce n'est pas le tirêt classique #045, mais celui remplacé automatiquement par word)

    De plus si je fais un select avec un like '%…%', les enregistrements ressortent bien, l'encodage est donc bien conservé, le problème est donc juste une question de restitution qui me retourne des "¿"

    Help !

  3. #3
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    IL s'agit d'un classique problème de NLS_LANG.

    Une recherche sur le forum devrait déjà vous donner de solides éléments de réponses.

    Si les réponses n'étaient pas assez conséquentes, je vous invite à indiquer ici-même le NLS_LANG du client ainsi que le jeu de caractères de la base.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    Merci pour votre réponse, mais malheureusement je ne suis pas très à l'aise avec les histoires de charset, et n'ai pas réussi à trouver d'informations suffisament clair sur le sujet (beaucoup de topics semblent ne plus exister lorsque je passe par la recherche)

    Je n'ai pas bien compris où trouver la valeur de la variable nls_lang. J'ai regardé en base de registre, dans les variables d'environnement, mais je ne la retrouve pas. Et lorsqu'en php j'appel la fonction getenv('NLS_LANG') il ne me retourne rien.

    J'ai donc essayé de la définir avec la fonction putenv et de lui donner l'une des valeurs suivantes qui seraient celles utiliser par word (à confirmer) :
    AMERICAN_AMERICA.WE8MSWIN1252
    FRENCH_FRANCE.WE8MSWIN1252

    Apparement ni l'une ni l'autre n'ont apporté de changement, j'ai toujours mes ¿, mais comme je ne suis pas certain de l'usage que fait...

    Voici le jeu de caractères de la base :
    NLS_LANGUAGE : AMERICAN
    NLS_TERRITORY : AMERICA
    NLS_CHARACTERSET : WE8ISO8859P1

    J'ai également commencé à regarder si le problème n'était pas côté php, mais sans succès non plus jusque là...

Discussions similaires

  1. [MySQL] caractères non reconnus
    Par gemblev dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2012, 10h38
  2. Lire fichier CSV, caractères non reconnus
    Par bejust dans le forum Général Java
    Réponses: 3
    Dernier message: 05/04/2011, 11h45
  3. Caractères non reconnus
    Par duarep dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/06/2009, 22h04
  4. [.net] Caractères spéciaux non reconnus
    Par akrodev dans le forum MFC
    Réponses: 3
    Dernier message: 04/05/2006, 22h08
  5. Réponses: 21
    Dernier message: 01/03/2006, 16h51

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