Bonjour à tous,
Avant toutes chose je m'excuse de ce post sur un sujet maintes fois débattu. J'ai parcouru attentivement le forum et lu les différents tutos sur le sujet mais n'arrivant toujours pas à résoudre mon problème, je viens aujourd'hui vers vous en quête d'une explication. Si celle-ci existe déjà sur ce site, n'hésitez pas à sortir les fouets (et si possible le lien qui y conduit...)
Pour rentrer dans le vif du sujet, ma situation est la suivante :
J'utilise des pages PHP pour réaliser une recherche dans une base de données ORACLE en filtrant les résultats selon différents paramètres. En bref, la structure de ces pages est la suivante :
- Page principale "recherche.php" qui permet la sélection des différents filtres, la recherche/l'export des résultats et l'affichage de ceux-ci dans un tableau.
- Page de connexion et d'initialisation des filtres (include au début de "recherche.php"). La connexion est réalisée de la manière suivante : $conn=new PDO("odbcxxx", "nom_base", "mdp_base");
- Page de déconnexion.
- Page de création de la requête filtrée.
Mon problème est simple : si les accents s'affichent bien dans la partie "figée" réalisée en HTML, les éléments récupérés dans la base de données par une requête font "disparaître" ceux-ci (par exemple le mot "équipement" devient equipement"). À priori ce problème n'est pas bloquant, mais il provoque un problème dans le filtrage car ce filtrage peut être fait manuellement et ne fonctionne alors pas. En effet, si on lance une recherche sur "équipement" OU "equipement",
elle ne ramène jamais le résultat.
Après avoir effectué les recherches décrites plus haut, j'ai testé les solutions suivantes (séparément et ensemble) :
1 - Toutes les pages .php comportent :
2 - Tous les fichiers sont enregistrés en UTF 8 sans BOM<?php header( 'content-type: text/html; charset=utf-8' ); ?>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
3 - Exécution de la commande suivante juste après la connexion :
"$conn>exec("set names utf8");"
Rien de tout cela n'a réglé le problème... J'ai également essayé de creuser au niveau de la base de données mais je ne suis pas habitué à Oracle et j'ai du mal à comprendre son fonctionnement. En passant par SQLDeveloper, je peux quand-même constater que les accents sont bien présents...
Si vous avez une idée d'une piste pour régler ce problème, toute réponse est la bienvenue. Merci d'avance et bonne journée à tous.
Partager