Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2012, 10h01   #1
Nouveau Membre du Club
 
Avatar de H.ile
 
Architecte de système d'information
Inscription : janvier 2008
Messages : 107
Détails du profil
Informations personnelles :
Âge : 32
Localisation : Macao

Informations professionnelles :
Activité : Architecte de système d'information

Informations forums :
Inscription : janvier 2008
Messages : 107
Points : 37
Points : 37
Par défaut Des � à la place de mes accents

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 :
<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 :
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 :
echo utf8_decode($_idObj);
// affiche BT_COMMU|Aub?rive
Code :
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 :
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");
}
 
 
?>
H.ile est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 10h13   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 789
Points : 35 789
Passez à l'UTF-8 sans manquer une étape
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/01/2012, 10h50   #3
Nouveau Membre du Club
 
Avatar de H.ile
 
Architecte de système d'information
Inscription : janvier 2008
Messages : 107
Détails du profil
Informations personnelles :
Âge : 32
Localisation : Macao

Informations professionnelles :
Activité : Architecte de système d'information

Informations forums :
Inscription : janvier 2008
Messages : 107
Points : 37
Points : 37
Merci pour cette réponse.
Meta changé, conversion des derniers fichiers php non convertis effectuée. Ai même ajouté le header. Par contre tout ceci sans résultat pour l'instant.
J'ai un NLS_NCHAR_CHARACTERSET en AL16UTF16 dans ma base Oracle ; j'ai changé la chaîne de connexion en
Code :
$connexion = oci_connect("****","$$$$","§§§§§","AL16UTF16");
Résultat je n'ai plus de résultat de requête.
/edit :
Cette connexion c'est moi qui indique que je transmet de l'UTF16, alors qu'il me faut dire : j'exige que tu transmettes de l'UTF8 :
$connexion = oci_connect("****","$$$$","§§§§§","AL32UTF8")

Désolé
H.ile est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h29.


 
 
 
 
Partenaires

Hébergement Web