[RESOLU] Restitution des accents depuis Oracle

Eléphanteau du PHP | 10 Messages

24 mars 2015, 17:49

Bonjour tous !

Je n'arrive pas à restituer les accents de libellés récupérés depuis une requête SQL sur une base Oracle, je vous mets des images ci-dessous pour illustrer mon problème.

Comment faire pour que je récupère les accents ?

Voici le contenu de ma table Oracle :
Image

A la restitution, j'ai un caractère spécial au lieu de l'accent :
Image

Et voici la .... configuration (si on peut dire ça comme ça ) de ma session oracle et celle de la database :
Image

Le code utilisé pour la restit est la suivante (en résumé ) :
Code HTML :

Code : Tout sélectionner

<select id='user_profil' name='nni_profil'> <?php affiche_liste_profil_L($connection,'MCO Félix') ?> </select><br/>
Code PHP :

Code : Tout sélectionner

function profil_options_L($connection){ $sql="select DISTINCT LIBELLE from SC_USER_GROUP_L"; $stid = oci_parse($connection, $sql); oci_execute($stid); return $stid; } function affiche_liste_profil_L($cx, $value, &$tab){ $requete=profil_options_L($cx); while ($row = oci_fetch_array($requete, OCI_ASSOC+OCI_RETURN_NULLS)) { foreach ($row as $item){ if (trim($item)==$value) { echo "<option selected>$item</option>"; } else { echo "<option>$item</option>"; } } } }

Merci pour votre aide...

Mammouth du PHP | 688 Messages

24 mars 2015, 18:05

cela arrive quand la ligne de ce type
<meta charset="utf-8" />
dans la page html ne contient pas la bonne valeur.

Eléphanteau du PHP | 10 Messages

24 mars 2015, 18:07

Moi c'est :

Code : Tout sélectionner

<head> <meta charset="UTF-8"> <link rel='stylesheet' type='text/css' href='../CSS/VinzStyle.css' media='screen' /> <title> Gestion Creation NNI </title> </head>
Et pourtant, j'ai ces caractères spéciaux .... #-o

Mammouth du PHP | 688 Messages

24 mars 2015, 18:45

mets une autre valeur qu'utf8 pour tester. si les données n'ont pas été ajoutées depuis une page en utf8, alors cela s'affiche mal dans une page en utf8.

Eléphanteau du PHP | 10 Messages

25 mars 2015, 11:18

Bonjour;

ça ne résout pas le problème :
Si j'enlève UTF-8 dans mon <meta charset>, les caractères spéciaux venant de la table s'affichent bien, mais du coup, les caractères spéciaux de la page (ceux des labels accompagnant les champs texte par exemple) s'affichent mal.

Après avoir cherché cherché dans les méandres d'internet, j'ai finalement trouvé la solution :
Pour que les caractères spéciaux d'Oracle s'affichent en UTF-8 il faut rajouter 'AL32UTF8' dans oci_connect, exemple :

Code : Tout sélectionner

($conn = oci_connect(username,pass, $tns2 , 'AL32UTF8')
Merci pour ton aide tof73.

& Bonne journée !