Aloha
Mon utilisateur choisit un objet dans une liste déroulante. Le nom est bien affiché (accentué et tout).
Quand je fais un "echo" sur la requête sql qui est générée pour récupérer les infos, je découvre que l'accent est remplacé par �. Cela fausse le résultat de la requête. Etrangement, les accents "passés en dur" dans la requête ne sont pas concernés.

Ma page principale a une balise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
J'ai réenregistré toutes mes pages en UTF8 (était-ce logique ?)

J'ai le même comportement quelque soit le navigateur. Et il ne me reste a priori que ce problème. D'avance, merci,



Voici la fin de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
 
error_reporting(E_ALL || E_NOTICE);
 
/* On récupère l'identifiant (TABLE|NOM)de l'objet choisi. */
$_idObj = isset($_GET['_idObj']) ? $_GET['_idObj'] : false;
echo $_idObj;
//affiche BT_COMMU|Aub�rive
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo utf8_decode($_idObj);
// affiche BT_COMMU|Aub?rive
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
/* Si on a un objet, on procède à la requête */
if(false !== $_idObj)
{
require_once  './../fonctions.php';
list($table_, $idr) = split('[|]', $_idObj);
    /* Création de la requête pour avoir la fiche d'objet*/
	switch ($table_) {
		...
		case 'BT_COMMU':
		$sql3 = "SELECT B.NOM \"Commune\", B.CO_INSEE \"Code Insee\", B.ARRONDIS \"Arrondissement\", B.CANTON \"Canton\", T.NOM AS EPCI ".
				"FROM BT_COMMU B, TH_LIMAD T ".
				"WHERE B.NOM = '".$idr."' ".
				"AND SDO_ANYINTERACT(B.GEOMETRY, T.GEOMETRY) ='TRUE' ".
				"AND (round(SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010),3))>0.5 ".
				"AND round((SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010)/(SDO_GEOM.SDO_AREA(B.GEOMETRY,0.010)))*100,3)>5 ".
				"AND T.GENRE = 'intercommunalité'";
		break;
		...
		default: 
		die("objet inconnu");		
		break ;
		}
	echo $sql3;
// affiche : SELECT B.NOM "Commune", B.CO_INSEE "Code Insee", B.ARRONDIS "Arrondissement", B.CANTON "Canton", T.NOM AS EPCI FROM BT_COMMU B, TH_LIMAD T WHERE B.NOM = 'Aub�rive' AND SDO_ANYINTERACT(B.GEOMETRY, T.GEOMETRY) ='TRUE' AND (round(SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010),3))>0.5 AND round((SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(T.GEOMETRY,B.GEOMETRY, 0.001),0.010)/(SDO_GEOM.SDO_AREA(B.GEOMETRY,0.010)))*100,3)>5 AND T.GENRE = 'intercommunalité'
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
43
44
45
46
47
48
49
50
51
52
53
$connexion = oci_connect("*****","$$$$$","%%%%%");	
    $nd = 0;
 
    $results=select_to_array($connexion, $sql3);
	/* On crée un tableau pour placer les résultats */
	echo '<table class="resultat">';
	if (count($results)) // Si y'a des résultat 
				{
 
				reset($results); // se placer à la première ligne du tableau $results
				//echo "<br>";
				$i = 0;
				foreach($results as $key=>$value) // Parcourir le tableau $results
						{
						if ($i===0) {
						echo "<tr>";
						foreach(array_keys($value) as $key) {
								echo "<th>".sort_link($key,$key)."</th>";
								}
						echo "</tr>";			
						++$i;
						echo "<tbody>";
						} 		
						echo "<tr>";
 
						foreach(array_values($value) as $val) {
							echo "<td>";
							if (is_null($val)) {echo '--';} 
							else 
							{
							if (empty($val)) 
							{echo '--';} else {echo $val;}}
							echo "</td>";
							}
							echo "</tr>";
						}
				} else // Pas de résultat 
				{
					echo "Y'a personne";
				}
	echo "</tbody>";
	echo "</table>";
    /* Un petit coup de balai */
	oci_close($connexion);
 }
/* Sinon on retourne un message d'erreur */
else
{
    echo("<p>Une erreur s'est produite. La région sélectionnée comporte une donnée invalide.</p>\n");
}
 
 
?>