problème d'encodage Oracle <-> PHP
Bonjour, je n'arrive pas à résoudre un problème d'encodage dans le resultat d'une requete SQL. Les accents disparaissent ! :(
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
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>INDEX</title>
<script type="text/javascript" src="defaut.js"></script>
<link rel="stylesheet" type="text/css" href="defaut.css" />
</head>
<body>
<?php
echo aff();
function aff()
{
include("outils_connexionBD.php");
$cnx=connexionBDD();
$sql="SELECT ....";
$statement=oci_parse($cnx, $sql);
$resultats=oci_execute($statement);
while($d=oci_fetch_array( $statement ))
$retour.=htmlentities( $d[0], ENT_QUOTES);
deconnexionBDD($cnx);
return $retour ;
}
?>
</body>
</html> |
- L'affichage du resultat est sans accent.
- Le resultat dans le code source est sans accent.
- L'encodage du text dans cette page est utf-8
- Le type de la donnée est VARCHAR2, qui ici est en WE8MSWIN1252 (NLS_CHARACTERSET)
- Un mb_detect_encoding($d[0]) me donne ASCII (en contradiction avec la ligne précedente)
-Un mb_convert_encoding($d[0], "utf-8", "WE8MSWIN1252") retourn une erreur
-Un mb_convert_encoding($d[0], "utf-8") n'y change rien
Je ne vois pas ce que je peux faire de plus.
Quelqu'un aurait une idée ?
merci